X-Git-Url: http://www.dolda2000.com/gitweb/?p=ashd.git;a=blobdiff_plain;f=src%2Fcallcgi.c;h=e51a06a71e3fd7404b9dcf745444230b2cb6c3a8;hp=e6e909b9c3ce31d1c89be62d055c6ccc55b68e46;hb=2d65add085285c9df22b9c9bf7d5f2521d9f61cd;hpb=da262448ff1168521c3861610aeff8a42f5179a3 diff --git a/src/callcgi.c b/src/callcgi.c index e6e909b..e51a06a 100644 --- a/src/callcgi.c +++ b/src/callcgi.c @@ -90,17 +90,13 @@ static void forkchild(int inpath, char *prog, char *file, char *method, char *ur if(getenv("HTTP_VERSION")) putenv(sprintf2("SERVER_PROTOCOL=%s", getenv("HTTP_VERSION"))); putenv(sprintf2("REQUEST_METHOD=%s", method)); - if(*rest) - putenv(sprintf2("PATH_INFO=/%s", rest)); - else - putenv("PATH_INFO="); + putenv(sprintf2("PATH_INFO=%s", rest)); name = url; /* XXX: This is an ugly hack (I think), but though I can think * of several alternatives, none seem to be better. */ - if(*rest && (strlen(url) > strlen(rest)) && - !strcmp(rest, url + strlen(url) - strlen(rest)) && - (url[strlen(url) - strlen(rest) - 1] == '/')) { - name = sprintf2("%.*s", (int)(strlen(url) - strlen(rest) - 1), url); + if(*rest && (strlen(url) >= strlen(rest)) && + !strcmp(rest, url + strlen(url) - strlen(rest))) { + name = sprintf2("%.*s", (int)(strlen(url) - strlen(rest)), url); } putenv(sprintf2("SCRIPT_NAME=%s", name)); putenv(sprintf2("QUERY_STRING=%s", qp?qp:""));