void logger(int level, int priority, const char *format, ...) {
va_list ap;
+ int len;
char timestr[32] = "";
char message[1024] = "";
time_t now;
return;
va_start(ap, format);
- vsnprintf(message, sizeof message, format, ap);
+ len = vsnprintf(message, sizeof message, format, ap);
va_end(ap);
+ if(len > 0 && len < sizeof message && message[len - 1] == '\n')
+ message[len - 1] = 0;
+
if(level <= debug_level) {
switch(logmode) {
case LOGMODE_STDERR:
if(logcontrol) {
suppress = true;
logcontrol = false;
- for(splay_node_t *node = connection_tree->head; node; node = node->next) {
- connection_t *c = node->data;
+ for list_each(connection_t, c, connection_list) {
if(!c->status.log)
continue;
logcontrol = true;