From f16d046f6330f897b374d9bb7dab3b2ce8eab3a7 Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Mon, 24 Aug 2020 10:01:20 +0200 Subject: [PATCH] log_custom: print to stderror if sending log message fails - help troubleshooting while avoiding looping to same function in case the log engine is set to log custom module --- src/modules/log_custom/log_custom_mod.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/modules/log_custom/log_custom_mod.c b/src/modules/log_custom/log_custom_mod.c index 5253dad37e9..a0f2e7542e8 100644 --- a/src/modules/log_custom/log_custom_mod.c +++ b/src/modules/log_custom/log_custom_mod.c @@ -139,6 +139,7 @@ void _lc_core_log_udp(int lpriority, const char *format, ...) va_list arglist; char obuf[LC_LOG_MSG_MAX_SIZE]; int n; + int r; va_start(arglist, format); @@ -146,8 +147,11 @@ void _lc_core_log_udp(int lpriority, const char *format, ...) n += snprintf(obuf + n, LC_LOG_MSG_MAX_SIZE - n, "(%d) ", my_pid()); n += vsnprintf(obuf + n, LC_LOG_MSG_MAX_SIZE - n, format, arglist); va_end(arglist); - if(udp_send(&_lc_udp_dst, obuf, n)!=0) { - udp_send(&_lc_udp_dst, "debug: previous udp send returned non zero\n", 43); + r = udp_send(&_lc_udp_dst, obuf, n); + if(r<0) { + /* sending log message failed - print to stderror to help debugging */ + fprintf(stderr, "error: previous udp send returned failure (%d:%d:%s)\n", + r, errno, strerror(errno)); } } @@ -160,9 +164,9 @@ int ki_log_udp(sip_msg_t *msg, str *txt) ret=udp_send(&_lc_udp_dst, txt->s, txt->len); - if(ret==0) return 1; + if(ret>0) return 1; - return ret; + return (ret==0)?-1:ret; }