diff options
Diffstat (limited to 'src/config.c')
| -rw-r--r-- | src/config.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/config.c b/src/config.c index ec767da..662d02e 100644 --- a/src/config.c +++ b/src/config.c @@ -213,6 +213,7 @@ conf_ini_handler(void *user, const char *section, char *name; char **value; } route_strvars[] = { + { "rewrite", &route->rewrite }, { "root", &route->root }, { "index", &route->index }, }; @@ -228,6 +229,11 @@ conf_ini_handler(void *user, const char *section, if (strcmp(route_strvars[i].name, name) != 0) { continue; } + if (strcmp(route_strvars[i].name, "rewrite") == 0 + && routing != ROUTE_REGEX) { + fprintf(stderr, "rewrite directives are only valid for regex routes\n"); + return 0; + } *route_strvars[i].value = strdup(value); return 1; } @@ -315,9 +321,10 @@ config_finish(struct gmnisrv_config *conf) } struct gmnisrv_route *rnext = route->next; - free(route->spec); - free(route->root); free(route->index); + free(route->rewrite); + free(route->root); + free(route->spec); free(route); route = rnext; } |
