88 break; |
88 break; |
89 } |
89 } |
90 case LINE_END_TAG: { |
90 case LINE_END_TAG: { |
91 sstr_t tag = cfg_get_end_tag_name(line); |
91 sstr_t tag = cfg_get_end_tag_name(line); |
92 if(sstrcmp(tag, conf->obj->type) != 0) { |
92 if(sstrcmp(tag, conf->obj->type) != 0) { |
93 fprintf(stderr, "syntax error: wrong close tag\n"); |
93 log_ereport(LOG_FAILURE, "server.conf: syntax error: wrong close tag"); |
94 fprintf(stderr, "open tag: %s close tag: %s\n", sstrdup(tag).ptr, sstrdup(conf->obj->type).ptr); |
94 log_ereport(LOG_FAILURE, "open tag: %s close tag: %s", sstrdup(tag).ptr, sstrdup(conf->obj->type).ptr); |
95 exit(-1); |
95 exit(-1); |
96 } |
96 } |
97 conf->obj = NULL; |
97 conf->obj = NULL; |
98 |
98 |
99 break; |
99 break; |
100 } |
100 } |
101 case LINE_DIRECTIVE: { |
101 case LINE_DIRECTIVE: { |
102 if(conf->obj == NULL) { |
102 if(conf->obj == NULL) { |
103 fprintf(stderr, "syntax error: directive outside of object\n"); |
103 log_ereport(LOG_FAILURE, "server.conf: directive outside of object"); |
104 exit(-1); |
104 exit(-1); |
105 } |
105 } |
106 |
106 |
107 ConfigDirective *d = cfg_parse_directive(line, conf->parser.mp); |
107 ConfigDirective *d = cfg_parse_directive(line, conf->parser.mp); |
108 d->begin = begin; |
108 d->begin = begin; |