httpd: add a bit of error logging; a few code simplifications. +29 bytes.
authorDenis Vlasenko <vda.linux@googlemail.com>
Fri, 8 Feb 2008 15:21:55 +0000 (15:21 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Fri, 8 Feb 2008 15:21:55 +0000 (15:21 -0000)
networking/httpd.c

index 0f18b0fd0d9696d69b2ce4611213bbd682252c4e..3ac9b906a3bb515f60b7e4f3d46a9d1254fba52c 100644 (file)
@@ -1419,8 +1419,9 @@ static void send_cgi_and_exit(
 
                /* script must have absolute path */
                script = strrchr(fullpath, '/');
-               if (!script)
-                       goto error_execing_cgi;
+               //fullpath is a result of concat_path_file and always has '/'
+               //if (!script)
+               //      goto error_execing_cgi;
                *script = '\0';
                /* chdiring to script's dir */
                if (chdir(fullpath) == 0) {
@@ -1441,16 +1442,19 @@ static void send_cgi_and_exit(
 #endif
                        *script = '/';
                        /* set argv[0] to name without path */
-                       argv[0] = (char*)bb_basename(purl);
+                       argv[0] = script + 1;
                        argv[1] = NULL;
 #if ENABLE_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
                        if (interpr)
-                               execv(interpr, argv);
-                       else
+                               fullpath = interpr;
 #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
                 * (we are CGI here, our stdout is pumped to the net) */
                send_headers_and_exit(HTTP_NOT_FOUND);