diff options
| author | Ben Fuhrmannek | 2020-06-15 11:51:16 +0200 |
|---|---|---|
| committer | Ben Fuhrmannek | 2020-06-15 11:51:16 +0200 |
| commit | 7ac1e3866ef4f146c6c93a5ca13b9aebb14e936a (patch) | |
| tree | ce57745314d905ff06119788acb56c11dcb3aede /src/sp_utils.c | |
| parent | f742d9f88bf788e38bbe832f1b75e39784f024bc (diff) | |
| parent | 7f9602ebc23582195d63eb35f1de1961297f2e00 (diff) | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'src/sp_utils.c')
| -rw-r--r-- | src/sp_utils.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/sp_utils.c b/src/sp_utils.c index 7641808..0f87f17 100644 --- a/src/sp_utils.c +++ b/src/sp_utils.c | |||
| @@ -15,7 +15,28 @@ void sp_log_msg(char const* feature, int type, const char* fmt, ...) { | |||
| 15 | vspprintf(&msg, 0, fmt, args); | 15 | vspprintf(&msg, 0, fmt, args); |
| 16 | va_end(args); | 16 | va_end(args); |
| 17 | 17 | ||
| 18 | zend_error(type, "[snuffleupagus][%s] %s", feature, msg); | 18 | const char *client_ip = getenv("REMOTE_ADDR"); |
| 19 | if (!client_ip) { | ||
| 20 | client_ip = "0.0.0.0"; | ||
| 21 | } | ||
| 22 | switch (SNUFFLEUPAGUS_G(config).log_media) { | ||
| 23 | case SP_SYSLOG: | ||
| 24 | openlog(PHP_SNUFFLEUPAGUS_EXTNAME, LOG_PID, LOG_AUTH); | ||
| 25 | const char* error_filename = zend_get_executed_filename(); | ||
| 26 | int syslog_level = SP_LOG_DROP ? LOG_ERR : LOG_INFO; | ||
| 27 | int error_lineno = zend_get_executed_lineno(TSRMLS_C); | ||
| 28 | syslog(syslog_level, "[snuffleupagus][%s][%s] %s in %s on line %d", client_ip, feature, msg, | ||
| 29 | error_filename, error_lineno); | ||
| 30 | closelog(); | ||
| 31 | if (type == SP_LOG_DROP) { | ||
| 32 | zend_bailout(); | ||
| 33 | } | ||
| 34 | break; | ||
| 35 | case SP_ZEND: | ||
| 36 | default: | ||
| 37 | zend_error(type, "[snuffleupagus][%s][%s] %s", client_ip, feature, msg); | ||
| 38 | break; | ||
| 39 | } | ||
| 19 | } | 40 | } |
| 20 | 41 | ||
| 21 | int compute_hash(const char* const filename, char* file_hash) { | 42 | int compute_hash(const char* const filename, char* file_hash) { |
