return new_le;
}
+static int fdi_push_log(struct fd_info *fdi, int *dump, struct sorting_vector *logs, struct log_file *l_file)
+{
+ assert(fdi);
+ assert(dump);
+ assert(l_file);
+
+ struct logger_entry *temp = fdi_extract_entry(fdi);
+ if (!temp)
+ return -ENOMEM;
+
+ if (fdi->do_sorting) {
+ push_log(temp, l_file, logs);
+ } else {
+ int write_err = logfile_write_with_rotation(temp, l_file);
+ free(temp);
+ if (!write_err && *dump && !--*dump)
+ return 1;
+ }
+
+ return 0;
+}
+
/**
* @brief Handle input
* @details The main loop reading log data
}
}
- while (fdi_has_log(fdi)) {
- struct logger_entry *temp = fdi_extract_entry(fdi);
- if (!temp) {
+ while (fdi_has_log(fdi))
+ if (fdi_push_log(fdi, &dump, logs, l_file)) {
looping = 0;
break;
}
-
- if (fdi->do_sorting) {
- push_log(temp, l_file, logs);
- } else {
- int write_err = logfile_write_with_rotation(temp, l_file);
- free(temp);
- if (!write_err && dump && !--dump) {
- looping = 0;
- break;
- }
- }
- }
}
}