* limitations under the License.
*/
-#include <dlogutil.h>
+#include <dlogutil-internal.h>
#include <logretrieve.h>
#include <privilege.h>
#include <tizen.h>
log_filter_free(filter);
}
-struct dlogutil_sorting_options {
- unsigned int logs_size;
- dlogutil_sorting_order_e sort_by;
-};
-
EXPORT_API dlogutil_sorting_options_s *dlogutil_sorting_options_create()
{
dlogutil_sorting_options_s *ret = calloc(1, sizeof *ret);
free(state->enabled);
if (state->evs)
free(state->evs);
+ if (state->filter_object)
+ dlogutil_filter_options_destroy(state->filter_object);
fdi_array_free(&state->data_fds);
sort_vector_free(&state->logs);
}
if (!has_required_privilege(is_pipe, mode, fdi_ptrs, fdi_cnt))
return -EPERM;
- dlogutil_filter_options_s *reserve_filter = NULL;
-
- if (!filter || log_filter_need_apply_default(filter)) {
- reserve_filter = filter ? log_filter_from_filter(filter) : dlogutil_filter_options_create();
- if (!reserve_filter)
- return -ENOMEM;
- if (dlogutil_filter_options_set_filterspec(reserve_filter, "*:D")) {
- dlogutil_filter_options_destroy(reserve_filter);
- return -ENOMEM;
- }
- }
-
- /* Note that we don't cleanup nor init this struct.
- * This is because it's actually done by the {filter,sorting}_* functions. */
- struct additional_options opt;
-
- opt.logs_dump = mode;
- opt.logs_size = sorting ? sorting->logs_size : DEFAULT_SORT_BUFFER_SIZE;
- opt.filter_object = reserve_filter ?: filter;
- opt.monitor = monitor;
-
bool sorting_needed;
dlogutil_sorting_order_e proper_sort_by =
get_proper_sort_by(sorting ? sorting->sort_by : DLOGUTIL_SORT_DEFAULT, buffers, is_pipe, &conf, &sorting_needed);
__attribute__((cleanup(dlogutil_state_destroy))) dlogutil_state_s state;
- r = dlogutil_state_init(&state, &fdi_ptrs, fdi_cnt, callback, data, sorting_needed, proper_sort_by, &conf, &opt);
+ r = dlogutil_state_init(&state, &fdi_ptrs, fdi_cnt, mode, monitor, callback, data, sorting, filter, sorting_needed, proper_sort_by, &conf);
if (r)
return r;
- r = do_print(&state, &opt);
-
- if (reserve_filter)
- dlogutil_filter_options_destroy(reserve_filter);
+ r = do_print(&state);
return r;
}