]> granicus.if.org Git - php/commitdiff
Pass error severity to SAPI modules and raise corresponding error level in Apache
authorMartin Vobruba <vobruba.martin@gmail.com>
Mon, 4 Jul 2016 08:46:44 +0000 (10:46 +0200)
committerAnatol Belski <ab@php.net>
Mon, 11 Jul 2016 07:34:48 +0000 (09:34 +0200)
ext/standard/basic_functions.c
main/SAPI.h
main/main.c
sapi/apache2handler/sapi_apache2.c
sapi/cgi/cgi_main.c
sapi/cli/php_cli.c
sapi/cli/php_cli_server.c
sapi/embed/php_embed.c
sapi/fpm/fpm/fpm_main.c
sapi/litespeed/lsapi_main.c
sapi/phpdbg/phpdbg.c

index 7fa1ad4bfc1b9d585b57284ec309f536c088bc71..c7411b2a633b1ab233f3273b556cde346043bfa7 100644 (file)
@@ -4740,7 +4740,7 @@ PHPAPI int _php_error_log_ex(int opt_err, char *message, size_t message_len, cha
 
                case 4: /* send to SAPI */
                        if (sapi_module.log_message) {
-                               sapi_module.log_message(message);
+                               sapi_module.log_message(message, -1);
                        } else {
                                return FAILURE;
                        }
index e6c8e8cf87e919ad54c2e4a61fa74c8eb0df191e..e02bab9c61a54184687fb58c060db70a432a829f 100644 (file)
@@ -241,7 +241,7 @@ struct _sapi_module_struct {
        char *(*read_cookies)(void);
 
        void (*register_server_variables)(zval *track_vars_array);
-       void (*log_message)(char *message);
+       void (*log_message)(char *message, int syslog_type_int);
        double (*get_request_time)(void);
        void (*terminate_process)(void);
 
index 848f24fc5ab5c247de0a4cc7d2436ec8454237e8..0a1127176e7586a6804b76cebcb7470367fe47c1 100644 (file)
@@ -698,7 +698,7 @@ PHPAPI ZEND_COLD void php_log_err_with_severity(char *log_message, int syslog_ty
        /* Otherwise fall back to the default logging location, if we have one */
 
        if (sapi_module.log_message) {
-               sapi_module.log_message(log_message);
+               sapi_module.log_message(log_message, syslog_type_int);
        }
        PG(in_error_log) = 0;
 }
index 6f6de422baad367164dd3ad3c66d38c8221eebd0..f61841d86cb4fef4fb12a6a20b470ff72d70df1e 100644 (file)
@@ -314,16 +314,44 @@ php_apache_sapi_flush(void *server_context)
        }
 }
 
-static void php_apache_sapi_log_message(char *msg)
+static void php_apache_sapi_log_message(char *msg, int syslog_type_int)
 {
        php_struct *ctx;
+       int aplog_type = APLOG_ERR;
 
        ctx = SG(server_context);
 
+       switch (syslog_type_int) {
+               case LOG_EMERG:
+                       aplog_type = APLOG_EMERG;
+                       break;
+               case LOG_ALERT:
+                       aplog_type = APLOG_ALERT;
+                       break;
+               case LOG_CRIT:
+                       aplog_type = APLOG_CRIT;
+                       break;
+               case LOG_ERR:
+                       aplog_type = APLOG_ERR;
+                       break;
+               case LOG_WARNING:
+                       aplog_type = APLOG_WARNING;
+                       break;
+               case LOG_NOTICE:
+                       aplog_type = APLOG_NOTICE;
+                       break;
+               case LOG_INFO:
+                       aplog_type = APLOG_INFO;
+                       break;
+               case LOG_DEBUG:
+                       aplog_type = APLOG_DEBUG;
+                       break;
+       }
+
        if (ctx == NULL) { /* we haven't initialized our ctx yet, oh well */
                ap_log_error(APLOG_MARK, APLOG_ERR | APLOG_STARTUP, 0, NULL, "%s", msg);
        } else {
-               ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, ctx->r, "%s", msg);
+               ap_log_rerror(APLOG_MARK, aplog_type, 0, ctx->r, "%s", msg);
        }
 }
 
@@ -332,7 +360,7 @@ static void php_apache_sapi_log_message_ex(char *msg, request_rec *r)
        if (r) {
                ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, msg, r->filename);
        } else {
-               php_apache_sapi_log_message(msg);
+               php_apache_sapi_log_message(msg, -1);
        }
 }
 
index b4ba497e6714ecacbc816b68d424b68ca3281beb..0b6deb10e8255dfff42edac2798bde64935e3e42 100644 (file)
@@ -711,7 +711,7 @@ static void sapi_cgi_register_variables(zval *track_vars_array)
        }
 }
 
-static void sapi_cgi_log_message(char *message)
+static void sapi_cgi_log_message(char *message, int syslog_type_int)
 {
        if (fcgi_is_fastcgi() && CGIG(fcgi_logging)) {
                fcgi_request *request;
index 594f3ff611a36e5fb8c8b5f24f5c15e356f90e10..c3e22113b919d5fd7102faf887a76404b7ade068 100644 (file)
@@ -377,7 +377,7 @@ static void sapi_cli_register_variables(zval *track_vars_array) /* {{{ */
 }
 /* }}} */
 
-static void sapi_cli_log_message(char *message) /* {{{ */
+static void sapi_cli_log_message(char *message, int syslog_type_int) /* {{{ */
 {
        fprintf(stderr, "%s\n", message);
 }
index 60f68c31548186a2efe4bd62f331914eb388ce3a..21bceaf67e352744c807ed357732308e03a79161 100644 (file)
@@ -689,7 +689,7 @@ static void sapi_cli_server_register_variables(zval *track_vars_array) /* {{{ */
        zend_hash_apply_with_arguments(&client->request.headers, (apply_func_args_t)sapi_cli_server_register_entry_cb, 1, track_vars_array);
 } /* }}} */
 
-static void sapi_cli_server_log_message(char *msg) /* {{{ */
+static void sapi_cli_server_log_message(char *msg, int syslog_type_int) /* {{{ */
 {
        char buf[52];
 
@@ -1184,7 +1184,7 @@ static void php_cli_server_logf(const char *format, ...) /* {{{ */
        }
 
        if (sapi_module.log_message) {
-               sapi_module.log_message(buf);
+               sapi_module.log_message(buf, -1);
        }
 
        efree(buf);
index 7cc4e6a1263ae2a11bd27e2cd24b43f071000362..2cda257ce8d642584425dd467fb5be4132ad5e41 100644 (file)
@@ -94,7 +94,7 @@ static void php_embed_send_header(sapi_header_struct *sapi_header, void *server_
 {
 }
 
-static void php_embed_log_message(char *message)
+static void php_embed_log_message(char *message, int syslog_type_int)
 {
        fprintf (stderr, "%s\n", message);
 }
index e3786070c73ed0f7775d02a579ca252a1898c2f1..15f4da70fb8c3981cd2220755b918960669f1ba5 100644 (file)
@@ -660,7 +660,7 @@ void sapi_cgi_log_fastcgi(int level, char *message, size_t len)
 
 /* {{{ sapi_cgi_log_message
  */
-static void sapi_cgi_log_message(char *message)
+static void sapi_cgi_log_message(char *message, int syslog_type_int)
 {
        zlog(ZLOG_NOTICE, "PHP message: %s", message);
 }
index 7c8c4746fb3057d5b5048d3fd908b1fc4aaad35b..2182a33a48c302e5d10ac2b02bad174f04ab402e 100644 (file)
@@ -398,7 +398,7 @@ static int sapi_lsapi_send_headers(sapi_headers_struct *sapi_headers)
 
 /* {{{ sapi_lsapi_send_headers
  */
-static void sapi_lsapi_log_message(char *message)
+static void sapi_lsapi_log_message(char *message, int syslog_type_int)
 {
     char buf[8192];
     int len = strlen( message );
index ecd3f3974e0c419019bec895d9a4450dc79e9be1..e4fa7a5874193d2eb4400826761127a69f8c5122 100644 (file)
@@ -795,7 +795,7 @@ static void php_sapi_phpdbg_send_header(sapi_header_struct *sapi_header, void *s
 }
 /* }}} */
 
-static void php_sapi_phpdbg_log_message(char *message) /* {{{ */
+static void php_sapi_phpdbg_log_message(char *message, int syslog_type_int) /* {{{ */
 {
        /*
        * We must not request TSRM before being booted