"DLOG",
"\x1b[31m DLOG DAEMON FD LIMIT REACHED \x1b[0m" // make it stand out
);
- buffer_append(&entry.header, buf);
+ if (buffer_append(&entry.header, buf))
+ printf("ERROR: not enough memory either, please check platform settings as the daemon is seriously resource-starved!\n");
}
static int reader_print_out_single_log(struct reader *reader, const struct logger_entry *logger_entry)
optopt = 0;
if (retval) {
- if (wr)
- send_dlog_reply(wr->fd_entity.fd, DLOG_REQ_HANDLE_LOGUTIL, DLOG_REQ_RESULT_ERR, NULL, 0);
+ if (wr) {
+ int r = send_dlog_reply(wr->fd_entity.fd, DLOG_REQ_HANDLE_LOGUTIL, DLOG_REQ_RESULT_ERR, NULL, 0);
+ if (r < 0)
+ printf("ERROR: both parse_command_line() and send_dlog_reply() failed\n");
+ }
*rd = NULL;
reader_free(reader);
} else
struct logger_entry_with_msg lem;
parse_pipe_message(ple, &lem.header, ple->len);
add_recv_timestamp(&lem.header);
- buffer_append(&lem.header, wr->buf_ptr);
+ r = buffer_append(&lem.header, wr->buf_ptr);
wr->readed -= ple->len;
memmove(wr->buffer, wr->buffer + ple->len, sizeof wr->buffer - ple->len);
+
+ if (r)
+ return r;
}
} else if (event->events & EPOLLHUP)
return -EBADF;
return -ENOMEM;
if (IS_VECTOR_SIZE_SORTABLE(logs->size)) {
- sort_vector_push(logs, temp, l_file);
+ const int r = sort_vector_push(logs, temp, l_file);
+ if (r)
+ return r;
} else {
logfile_write_with_rotation(temp, l_file, logs->sort_by);
free(temp);
switch (option) {
case 0: { /* tid filter */
int tid;
- if (sscanf(optarg, "%d", &tid) == 1)
- log_add_filter_tid(l_file->format, tid);
- else
+ if (sscanf(optarg, "%d", &tid) != 1)
err_arg_nondigit = 1;
+ else if (log_add_filter_tid(l_file->format, tid))
+ goto enomem;
break;
}
case 1: { /* pid filter */
int pid;
- if (sscanf(optarg, "%d", &pid) == 1)
- log_add_filter_pid(l_file->format, pid);
- else
+ if (sscanf(optarg, "%d", &pid) != 1)
err_arg_nondigit = 1;
+ else if (log_add_filter_pid(l_file->format, pid))
+ goto enomem;
break;
}
case 2: { /* version */
err_arg_nondigit = 1;
break;
case 'f':
- if (logfile_set_path(l_file, optarg) < 0) {
- ERR("Error: not enough memory\n");
- return -ENOMEM;
- }
+ if (logfile_set_path(l_file, optarg) < 0)
+ goto enomem;
break;
case 'v': {
const log_print_format format = log_format_from_string(optarg);
list_add(filters, "*:D");
return 0;
+
+enomem:
+ ERR("Error: out of memory\n");
+ return -ENOMEM;
}
int create_initial_fdis(struct fd_info ***fdis, int enabled_buffers, struct fd_ops *buffer_op, struct log_config *conf)
if (!tag || !strlen(tag))
tag = "DLOG_ERROR_NOTAG";
- msg = log_buffer_get_message(entry);
+ msg = log_buffer_get_message(entry) ?: "DLOG_ERROR_NOMSG";
/*
* Get the current date/time in pretty form