]> granicus.if.org Git - apache/commitdiff
mod_cgi: log cgi script stderr to ScriptLog, use APLOGNO for log_scripterror
authorJan Kaluža <jkaluza@apache.org>
Tue, 23 Sep 2014 11:14:09 +0000 (11:14 +0000)
committerJan Kaluža <jkaluza@apache.org>
Tue, 23 Sep 2014 11:14:09 +0000 (11:14 +0000)
errors.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1626978 13f79535-47bb-0310-9956-ffa450edef68

docs/log-message-tags/next-number
modules/generators/mod_cgi.c

index 8834186ecfc54bab0b0b6b5b28c729b4583bccb6..681f6fefb05e3f4f95fffe21f31c503d1496cc57 100644 (file)
@@ -1 +1 @@
-2809
+2814
index 25175dd119aa7e5541411a0469339c7ef8f274c0..0602867cdf1c809e6393dc92c3976f9ddeffeba7 100644 (file)
@@ -162,7 +162,7 @@ AP_INIT_TAKE1("ScriptLogBuffer", set_scriptlog_buffer, NULL, RSRC_CONF,
 };
 
 static int log_scripterror(request_rec *r, cgi_server_conf * conf, int ret,
-                           apr_status_t rv, char *error)
+                           apr_status_t rv, char *logno, char *error)
 {
     apr_file_t *f = NULL;
     apr_finfo_t finfo;
@@ -170,7 +170,7 @@ static int log_scripterror(request_rec *r, cgi_server_conf * conf, int ret,
     int log_flags = rv ? APLOG_ERR : APLOG_ERR;
 
     ap_log_rerror(APLOG_MARK, log_flags, rv, r,
-                  "%s: %s", error, r->filename);
+                  "%s%s: %s", logno ? logno : "", error, r->filename);
 
     /* XXX Very expensive mainline case! Open, then getfileinfo! */
     if (!conf->logname ||
@@ -203,6 +203,7 @@ static apr_status_t log_script_err(request_rec *r, apr_file_t *script_err)
     char argsbuffer[HUGE_STRING_LEN];
     char *newline;
     apr_status_t rv;
+    cgi_server_conf *conf = ap_get_module_config(r->server->module_config, &cgi_module);
 
     while ((rv = apr_file_gets(argsbuffer, HUGE_STRING_LEN,
                                script_err)) == APR_SUCCESS) {
@@ -210,8 +211,7 @@ static apr_status_t log_script_err(request_rec *r, apr_file_t *script_err)
         if (newline) {
             *newline = '\0';
         }
-        ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(01215)
-                      "%s", argsbuffer);
+        log_scripterror(r, conf, r->status, 0, APLOGNO(01215), argsbuffer);
     }
 
     return rv;
@@ -774,24 +774,24 @@ static int cgi_handler(request_rec *r)
     conf = ap_get_module_config(r->server->module_config, &cgi_module);
 
     if (!(ap_allow_options(r) & OPT_EXECCGI) && !is_scriptaliased(r))
-        return log_scripterror(r, conf, HTTP_FORBIDDEN, 0,
+        return log_scripterror(r, conf, HTTP_FORBIDDEN, 0, APLOGNO(02809),
                                "Options ExecCGI is off in this directory");
     if (nph && is_included)
-        return log_scripterror(r, conf, HTTP_FORBIDDEN, 0,
+        return log_scripterror(r, conf, HTTP_FORBIDDEN, 0, APLOGNO(02810),
                                "attempt to include NPH CGI script");
 
     if (r->finfo.filetype == APR_NOFILE)
-        return log_scripterror(r, conf, HTTP_NOT_FOUND, 0,
+        return log_scripterror(r, conf, HTTP_NOT_FOUND, 0, APLOGNO(02811),
                                "script not found or unable to stat");
     if (r->finfo.filetype == APR_DIR)
-        return log_scripterror(r, conf, HTTP_FORBIDDEN, 0,
+        return log_scripterror(r, conf, HTTP_FORBIDDEN, 0, APLOGNO(02812),
                                "attempt to invoke directory as script");
 
     if ((r->used_path_info == AP_REQ_REJECT_PATH_INFO) &&
         r->path_info && *r->path_info)
     {
         /* default to accept */
-        return log_scripterror(r, conf, HTTP_NOT_FOUND, 0,
+        return log_scripterror(r, conf, HTTP_NOT_FOUND, 0, APLOGNO(02813),
                                "AcceptPathInfo off disallows user's path");
     }
 /*