summaryrefslogtreecommitdiffstats
path: root/src/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/config.c')
-rw-r--r--src/config.c11
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;
}