libdlogutil: move extra options to the state
[platform/core/system/dlog.git] / src / libdlogutil / lib.c
index af10d91..8308544 100644 (file)
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-#include <dlogutil.h>
+#include <dlogutil-internal.h>
 #include <logretrieve.h>
 #include <privilege.h>
 #include <tizen.h>
@@ -70,11 +70,6 @@ EXPORT_API void dlogutil_filter_options_destroy(dlogutil_filter_options_s *filte
                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);
@@ -153,6 +148,8 @@ void dlogutil_state_destroy(dlogutil_state_s *state)
                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);
 }
@@ -176,40 +173,16 @@ static int dlogutil_get_logs_internal(int buffers, unsigned int mode, bool monit
        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;
 }