src/server/config/acl.c

changeset 101
7fbcdbad0baa
parent 97
09fbefc0e6a9
child 115
51d9a15eac98
equal deleted inserted replaced
100:e9bb8449df02 101:7fbcdbad0baa
108 108
109 int parse_ace(ACLFile *f, sstr_t line) { 109 int parse_ace(ACLFile *f, sstr_t line) {
110 ACLConfig *cur = f->cur; 110 ACLConfig *cur = f->cur;
111 UcxAllocator *mp = f->parser.mp; 111 UcxAllocator *mp = f->parser.mp;
112 112
113 size_t tkn = 0; 113 ssize_t tkn = 0;
114 sstr_t *tk = sstrsplit(line, sstr(":"), &tkn); 114 sstr_t *tk = sstrsplit(line, sstr(":"), &tkn);
115 if(!tk || tkn < 3) { 115 if(!tk || tkn < 3) {
116 fprintf(stderr, "parse_ace: to few tokens\n"); 116 fprintf(stderr, "parse_ace: to few tokens\n");
117 return 1; 117 return 1;
118 } 118 }
159 fprintf(stderr, "parse_ace: ace incomplete\n"); 159 fprintf(stderr, "parse_ace: ace incomplete\n");
160 return 1; 160 return 1;
161 } 161 }
162 s = tk[n]; 162 s = tk[n];
163 163
164 size_t maskn = 0; 164 ssize_t maskn = 0;
165 sstr_t *accessmask = sstrsplit(s, sstr(","), &maskn); 165 sstr_t *accessmask = sstrsplit(s, sstr(","), &maskn);
166 for(int i=0;i<maskn;i++) { 166 for(int i=0;i<maskn;i++) {
167 sstr_t access = accessmask[i]; 167 sstr_t access = accessmask[i];
168 ace->access_mask = ace->access_mask | accstr2int(access); 168 ace->access_mask = ace->access_mask | accstr2int(access);
169 } 169 }
193 ace->type = ACLCFG_TYPE_ALARM; 193 ace->type = ACLCFG_TYPE_ALARM;
194 complete = 1; 194 complete = 1;
195 break; 195 break;
196 } else { 196 } else {
197 // set flags 197 // set flags
198 size_t fln = 0; 198 ssize_t fln = 0;
199 sstr_t *flags = sstrsplit(s, sstr(","), &fln); 199 sstr_t *flags = sstrsplit(s, sstr(","), &fln);
200 for(int i=0;i<fln;i++) { 200 for(int i=0;i<fln;i++) {
201 sstr_t flag = flags[i]; 201 sstr_t flag = flags[i];
202 if(!sstrcmp(flag, sstr("successful_access_flag"))) { 202 if(!sstrcmp(flag, sstr("successful_access_flag"))) {
203 ace->flags = ace->flags | ACLCFG_SUCCESSFUL_ACCESS_FLAG; 203 ace->flags = ace->flags | ACLCFG_SUCCESSFUL_ACCESS_FLAG;

mercurial