39 } ucx_regdestr; |
39 } ucx_regdestr; |
40 |
40 |
41 MimeConfig *load_mime_config(const char *file) { |
41 MimeConfig *load_mime_config(const char *file) { |
42 FILE *in = fopen(file, "r"); |
42 FILE *in = fopen(file, "r"); |
43 if(in == NULL) { |
43 if(in == NULL) { |
|
44 log_ereport(LOG_FAILURE, "Cannot load mime config file %s: %s", file, strerror(errno)); |
44 return NULL; |
45 return NULL; |
45 } |
46 } |
46 |
47 |
47 MimeConfig *conf = malloc(sizeof(MimeConfig)); |
48 MimeConfig *conf = malloc(sizeof(MimeConfig)); |
48 conf->parser.parse = mimeconf_parse; |
49 conf->parser.parse = mimeconf_parse; |
49 conf->directives = NULL; |
50 conf->directives = NULL; |
50 conf->ntypes = 0; |
51 conf->ntypes = 0; |
51 int r = cfg_parse_basic_file((ConfigParser*)conf, in); |
52 int r = cfg_parse_basic_file((ConfigParser*)conf, in); |
52 if(r != 0) { |
53 if(r != 0) { |
|
54 log_ereport(LOG_FAILURE, "Cannot parse mime config file %s", file); |
53 fclose(in); |
55 fclose(in); |
54 free(conf); |
56 free(conf); |
55 // TODO: free |
57 // TODO: free |
56 return NULL; |
58 return NULL; |
57 } |
59 } |