httpd: add a bit of error logging; a few code simplifications. +29 bytes.

This commit is contained in:
Denis Vlasenko 2008-02-08 15:21:55 +00:00
parent afdad653ac
commit 7dbf1b4d9e

View File

@ -1419,8 +1419,9 @@ static void send_cgi_and_exit(
/* script must have absolute path */ /* script must have absolute path */
script = strrchr(fullpath, '/'); script = strrchr(fullpath, '/');
if (!script) //fullpath is a result of concat_path_file and always has '/'
goto error_execing_cgi; //if (!script)
// goto error_execing_cgi;
*script = '\0'; *script = '\0';
/* chdiring to script's dir */ /* chdiring to script's dir */
if (chdir(fullpath) == 0) { if (chdir(fullpath) == 0) {
@ -1441,16 +1442,19 @@ static void send_cgi_and_exit(
#endif #endif
*script = '/'; *script = '/';
/* set argv[0] to name without path */ /* set argv[0] to name without path */
argv[0] = (char*)bb_basename(purl); argv[0] = script + 1;
argv[1] = NULL; argv[1] = NULL;
#if ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR #if ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
if (interpr) if (interpr)
execv(interpr, argv); fullpath = interpr;
else
#endif #endif
execv(fullpath, argv); execv(fullpath, argv);
if (verbose)
bb_perror_msg("exec %s", fullpath);
} else if (verbose) {
bb_perror_msg("chdir %s", fullpath);
} }
error_execing_cgi: //error_execing_cgi:
/* send to stdout /* send to stdout
* (we are CGI here, our stdout is pumped to the net) */ * (we are CGI here, our stdout is pumped to the net) */
send_headers_and_exit(HTTP_NOT_FOUND); send_headers_and_exit(HTTP_NOT_FOUND);