summaryrefslogtreecommitdiffstats
path: root/src/serve.c
diff options
context:
space:
mode:
authorRené Wagner <rwagner@rw-net.de>2021-01-27 20:57:18 +0100
committerDrew DeVault <sir@cmpwn.com>2021-01-29 08:55:43 -0500
commit32913c35cd5f36b00056d3e239c0e85f1f0ed000 (patch)
tree19088b68a894439f8d6dc0dd480c8dbdf9210a7c /src/serve.c
parentea360fa4c10791c3c720c33470c86923424348fe (diff)
downloadgmnisrv-32913c35cd5f36b00056d3e239c0e85f1f0ed000.tar.gz
gmnisrv-32913c35cd5f36b00056d3e239c0e85f1f0ed000.tar.xz
gmnisrv-32913c35cd5f36b00056d3e239c0e85f1f0ed000.zip
implement handling of ROUTE_EXACT definitions
This patchset implements the handling of exact routes as described in gmnisrvini(5).
Diffstat (limited to 'src/serve.c')
-rw-r--r--src/serve.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/serve.c b/src/serve.c
index 99f122e..e891d42 100644
--- a/src/serve.c
+++ b/src/serve.c
@@ -337,6 +337,12 @@ route_match(struct gmnisrv_route *route, const char *path, char **revised)
free(*revised);
*revised = NULL;
switch (route->routing) {
+ case ROUTE_EXACT:;
+ if (strlen(route->path)==strlen(path) && strncmp(path, route->path, strlen(route->path)) == 0 ) {
+ *revised = strdup(path);
+ return true;
+ }
+ return false;
case ROUTE_PATH:;
size_t l = strlen(route->path);
if (strncmp(path, route->path, l) != 0) {