#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <ctype.h>
static int
uri_is_absolute (char *uri)
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)
{
}
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)
{