From 02162bac24f753141da5d864a26e5d0c48f2c0aa Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Sun, 26 Oct 2008 19:18:34 -0200 Subject: [PATCH] Add Slug header support to CGI frontend --- frontend/cgi/cgi.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/frontend/cgi/cgi.c b/frontend/cgi/cgi.c index ec011ce..20f1ce7 100644 --- a/frontend/cgi/cgi.c +++ b/frontend/cgi/cgi.c @@ -26,6 +26,7 @@ #include #include #include +#include static int uri_is_absolute (char *uri) @@ -81,6 +82,22 @@ getbaseurl (void) return uri; } +static char * +getslug (void) +{ + char *origslug; + char *slug; + char *s; + origslug = getenv ("HTTP_SLUG"); + if (origslug == NULL) + return NULL; + slug = strdup (origslug); + for (s = slug; *s; s++) + if (!isalnum (*s)) + *s = '_'; + return slug; +} + static void cgi_request_content_set (AtomCtx *ctx, AtomRequest *request) { @@ -127,7 +144,14 @@ cgi_get_request (AtomCtx *ctx) } else if (!strcmp (method, "POST")) { - request = atom_request_new (ATOM_REQUEST_POST, path + 1); + char *slug = getslug (); + char *reqname; + if (slug) + reqname = slug; + else + reqname = strdup (path + 1); + request = atom_request_new (ATOM_REQUEST_POST, reqname); + free (reqname); cgi_request_content_set (ctx, request); if (atom_error_get (ctx) != NULL) { -- 2.20.1