Fix: cmd_rotate_set_schedule returns positive error codes
[lttng-tools.git] / src / lib / lttng-ctl / rotate.c
index d0e1274976be2cc6759cee884e55953c8bf5390f..4b7c2f9162c69ba18e837dbcfbdab72404bf9411 100644 (file)
@@ -149,6 +149,12 @@ end:
        return status;
 }
 
+void lttng_rotation_schedule_attr_set_size(
+               struct lttng_rotation_schedule_attr *attr, uint64_t size)
+{
+       attr->size = size;
+}
+
 enum lttng_rotation_status lttng_rotation_handle_get_state(
                struct lttng_rotation_handle *rotation_handle,
                enum lttng_rotation_state *state)
@@ -323,9 +329,61 @@ int lttng_rotation_set_schedule(
        lttng_ctl_copy_string(lsm.session.name, attr->session_name,
                        sizeof(lsm.session.name));
        lsm.u.rotate_setup.timer_us = attr->timer_us;
+       lsm.u.rotate_setup.size = attr->size;
 
        ret = lttng_ctl_ask_sessiond(&lsm, NULL);
+end:
+       return ret;
+}
+
+int lttng_rotation_schedule_get_timer_period(const char *session_name,
+               uint64_t *rotate_timer)
+{
+       struct lttcomm_session_msg lsm;
+       struct lttng_rotation_schedule_get_timer_period *get_timer = NULL;
+       int ret;
+
+       memset(&lsm, 0, sizeof(lsm));
+       lsm.cmd_type = LTTNG_ROTATION_SCHEDULE_GET_TIMER_PERIOD;
+       lttng_ctl_copy_string(lsm.session.name, session_name,
+                       sizeof(lsm.session.name));
+
+       ret = lttng_ctl_ask_sessiond(&lsm, (void **) &get_timer);
+       if (ret < 0) {
+               ret = -1;
+               goto end;
+       }
+
+       *rotate_timer = get_timer->rotate_timer;
+       ret = 0;
+end:
+       free(get_timer);
+       return ret;
+}
+
+int lttng_rotation_schedule_get_size(const char *session_name,
+               uint64_t *rotate_size)
+{
+       struct lttcomm_session_msg lsm;
+       struct lttng_rotation_schedule_get_size *get_size = NULL;
+       int ret;
+
+       memset(&lsm, 0, sizeof(lsm));
+       lsm.cmd_type = LTTNG_ROTATION_SCHEDULE_GET_SIZE;
+       lttng_ctl_copy_string(lsm.session.name, session_name,
+                       sizeof(lsm.session.name));
+
+       ret = lttng_ctl_ask_sessiond(&lsm, (void **) &get_size);
+       if (ret < 0) {
+               ret = -1;
+               goto end;
+       }
+
+       *rotate_size = get_size->rotate_size;
+
+       ret = 0;
 
 end:
+       free(get_size);
        return ret;
 }
This page took 0.024751 seconds and 4 git commands to generate.