logging from sofia: add missing newline

Sometimes, lgging from sofia lacks the final newline character, messing up log
output. First snprintf() to a buffer, add '\n' if necessary and then log.

Change-Id: Ia26c0b57a0166cf7de87c49471ce6f528a366dd5
neels/codecs
Neels Hofmeyr 3 years ago
parent 71fa54959c
commit 1cbd9e6ac0
  1. 11
      src/sip.c

@ -625,7 +625,16 @@ static void sip_logger(void *stream, char const *fmt, va_list ap)
* the log handler call-back function, so we have no clue what log level the
* currently logged message was sent for :( As a result, we can only use one
* hard-coded LOGL_NOTICE here */
osmo_vlogp(DSIP, LOGL_NOTICE, "", 0, 0, fmt, ap);
if (!log_check_level(DSIP, LOGL_NOTICE))
return;
/* The sofia-sip log line *sometimes* lacks a terminating '\n'. Add it. */
char log_line[256];
if (vsnprintf(log_line, sizeof(log_line), fmt, ap) > 0) {
char *end = log_line + OSMO_MIN(strlen(log_line), sizeof(log_line) - 2);
osmo_strlcpy(end, "\n", 2);
LOGP(DSIP, LOGL_NOTICE, "%s", log_line);
} else
LOGP(DSIP, LOGL_NOTICE, "unknown logging from sip\n");
}
void sip_agent_init(struct sip_agent *agent, struct app_config *app)

Loading…
Cancel
Save