X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=www%2Fwcgi.c;h=722d109df62796134436434077190908dd19b348;hb=71ad5b6272d0bc6320bea6c1ec10f5e10bbfe8ef;hp=a94c5ffa5472a1f1cbc0d4b5268ef3b560663b92;hpb=96a50ec75c6c2879756772ddd06956d69ea5a1c2;p=egate.git diff --git a/www/wcgi.c b/www/wcgi.c index a94c5ff..722d109 100644 --- a/www/wcgi.c +++ b/www/wcgi.c @@ -41,7 +41,10 @@ * USE OR PERFORMANCE OF THIS SOFTWARE. * * $Log: wcgi.c,v $ - * Revision 1.10 1996/01/05 16:21:20 adam + * Revision 1.11 1996/01/08 08:42:19 adam + * Handles method GET. + * + * Revision 1.10 1996/01/05 16:21:20 adam * Bug fix: shell (wproto) sometimes closed server FIFO before cgi * program opened it - solution: cgi sends OK when response has been read. * @@ -142,6 +145,17 @@ static int spawn (char *sprog, int id) } } +#if 0 +static void print_environ (void) +{ + extern char **environ; + int i; + + for (i = 0; environ[i]; i++) + gw_log (GW_LOG_DEBUG, prog, "e: %s", environ[i]); +} +#endif + /* * NOTE: In the (perhaps odd) terminology used within this software, * the 'server' is the present program, which is executed by the httpd @@ -271,6 +285,7 @@ int main() strcpy(p, serverp); p += strlen(p) + 1; strcpy(p, path_info); + gw_log (GW_LOG_DEBUG, prog, "P:%s", p); p += strlen(p) + 1; *(p++) = '\0'; /* no envvars tranferred at present */ if ((t = getenv("CONTENT_LENGTH")) && (data = atoi(t)) > 0) @@ -293,8 +308,14 @@ int main() i += j; } } - p += data; - *(p++) = '\0'; + else if ((t = getenv("QUERY_STRING"))) + { + strcpy (p, t); + data = strlen(p); + } + p[data] = '\0'; + gw_log (GW_LOG_DEBUG, prog, "C:%s", p); + p += data+1; data = (p - combuf); memcpy(combuf, &data, sizeof(data)); gw_log (GW_LOG_DEBUG, prog, "Writing data");