• Home
  • Raw
  • Download

Lines Matching +full:path +full:- +full:key

24 	char *key;		/* key string */  member
33 static int process_line(const char *path, char *line_buf, int pass, in process_line() argument
36 struct saved_data *data = (struct saved_data *)rec->data; in process_line()
39 char *key, *context; in process_line() local
47 items = sscanf(line_buf, "%ms %ms ", &key, &context); in process_line()
50 "%s: line %u is missing fields, skipping\n", path, in process_line()
53 free(key); in process_line()
58 data->spec_arr[data->nspec].key = key; in process_line()
59 data->spec_arr[data->nspec].lr.ctx_raw = context; in process_line()
62 data->nspec++; in process_line()
64 free(key); in process_line()
74 struct saved_data *data = (struct saved_data *)rec->data; in init()
75 const char *path = NULL; in init() local
78 int status = -1; in init()
83 while (n--) in init()
86 path = opts[n].value; in init()
91 if (!path) in init()
92 path = selinux_media_context_path(); in init()
93 if ((fp = fopen(path, "re")) == NULL) in init()
94 return -1; in init()
103 rec->spec_file = strdup(path); in init()
116 data->nspec = 0; in init()
118 data->nspec < maxnspec) { in init()
119 if (process_line(path, line_buf, pass, ++lineno, rec)) in init()
124 if (data->nspec == 0) { in init()
128 data->spec_arr = malloc(sizeof(spec_t)*data->nspec); in init()
129 if (data->spec_arr == NULL) in init()
131 memset(data->spec_arr, 0, sizeof(spec_t)*data->nspec); in init()
132 maxnspec = data->nspec; in init()
138 status = digest_add_specfile(rec->digest, fp, NULL, sb.st_size, path); in init()
142 digest_gen_hash(rec->digest); in init()
154 struct saved_data *data = (struct saved_data *)rec->data; in close()
155 struct spec *spec, *spec_arr = data->spec_arr; in close()
158 for (i = 0; i < data->nspec; i++) { in close()
160 free(spec->key); in close()
161 free(spec->lr.ctx_raw); in close()
162 free(spec->lr.ctx_trans); in close()
172 const char *key, in lookup() argument
175 struct saved_data *data = (struct saved_data *)rec->data; in lookup()
176 spec_t *spec_arr = data->spec_arr; in lookup()
179 for (i = 0; i < data->nspec; i++) { in lookup()
180 if (!strncmp(spec_arr[i].key, key, strlen(key) + 1)) in lookup()
182 if (!strncmp(spec_arr[i].key, "*", 2)) in lookup()
186 if (i >= data->nspec) { in lookup()
198 struct saved_data *data = (struct saved_data *)rec->data; in stats()
201 for (i = 0; i < data->nspec; i++) in stats()
202 total += data->spec_arr[i].matches; in stats()
205 data->nspec, total); in stats()
216 return -1; in selabel_media_init()
219 rec->data = data; in selabel_media_init()
220 rec->func_close = &close; in selabel_media_init()
221 rec->func_lookup = &lookup; in selabel_media_init()
222 rec->func_stats = &stats; in selabel_media_init()