- if ((ret < 0) || (ret >= sizeof(tmp_buf)))
- goto output;
- if (strlen(tmp_buf) + strlen(message_buf) + 1 > sizeof(message_buf))
- goto output;
- strcat(message_buf, tmp_buf);
- if (tmp_buf[strlen(tmp_buf) - 1] == '\n')
- goto output;
- return;
-output:
- priority -= verbosity;
- if (priority < 0)
- priority = 0;
- if (fg) {
- if (priority == 0)
- fprintf(stderr, "%s", message_buf);
- } else {
- int sys_pri;
- switch (priority) {
- case 0:
- sys_pri = LOG_ERR;
- break;
- case 1:
- sys_pri = LOG_DEBUG;
- break;
- default:
- goto out;
- }
- syslog(sys_pri, "%s", message_buf);
- }
-out:
- memset(message_buf, 0, sizeof(message_buf));