rule->ifname = NULL;
rule->iftype = STC_IFACE_ALL;
rule->rstn_type = STC_RSTN_TYPE_UNKNOWN;
- rule->data_limit = 0;
- rule->data_warn_limit = 0;
+ rule->data_limit = -1;
+ rule->data_warn_limit = -1;
+ rule->monthly_limit = -1;
+ rule->weekly_limit = -1;
+ rule->daily_limit = -1;
rule->roaming = STC_ROAMING_DISABLE;
rule->subscriber_id = NULL;
}
g_variant_builder_add(builder, "{sv}", "data_warn_limit",
g_variant_new_int64(info->data_warn_limit));
+ g_variant_builder_add(builder, "{sv}", "month_start_date",
+ g_variant_new_int32(info->month_start_date));
+
+ g_variant_builder_add(builder, "{sv}", "monthly_limit",
+ g_variant_new_int64(info->monthly_limit));
+
+ g_variant_builder_add(builder, "{sv}", "weekly_limit",
+ g_variant_new_int64(info->weekly_limit));
+
+ g_variant_builder_add(builder, "{sv}", "daily_limit",
+ g_variant_new_int64(info->daily_limit));
+
g_variant_builder_add(builder, "{sv}", "roaming",
g_variant_new_uint16(info->roaming));
static void __stc_extract_restriction_rule(const char *key, GVariant *value,
void *user_data)
{
- __STC_LOG_FUNC_ENTER__;
-
table_restrictions_info *rule =
(table_restrictions_info *) user_data;
if (rule == NULL) {
rule->data_warn_limit = g_variant_get_int64(value);
STC_LOGD("data_warn_limit: [%lld]", rule->data_warn_limit);
+ } else if (!g_strcmp0(key, "month_start_date")) {
+ rule->month_start_date = g_variant_get_int32(value);
+ STC_LOGD("month_start_date: [%d]", rule->month_start_date);
+
+ } else if (!g_strcmp0(key, "monthly_limit")) {
+ rule->monthly_limit = g_variant_get_int64(value);
+ STC_LOGD("monthly_limit: [%lld]", rule->monthly_limit);
+
+ } else if (!g_strcmp0(key, "weekly_limit")) {
+ rule->weekly_limit = g_variant_get_int64(value);
+ STC_LOGD("weekly_limit: [%lld]", rule->weekly_limit);
+
+ } else if (!g_strcmp0(key, "daily_limit")) {
+ rule->daily_limit = g_variant_get_int64(value);
+ STC_LOGD("daily_limit: [%lld]", rule->daily_limit);
+
} else if (!g_strcmp0(key, "roaming")) {
rule->roaming = g_variant_get_uint16(value);
STC_LOGD("roaming: [%u]", rule->roaming);
rule->subscriber_id = g_strdup(str);
STC_LOGD("subscriber_id: [%s]", rule->subscriber_id);
- } else if (!g_strcmp0(key, "type")) {
+ } else if (!g_strcmp0(key, "rstn_type")) {
rule->rstn_type = g_variant_get_uint16(value);
STC_LOGD("type: [%u]", (unsigned int) rule->rstn_type);
+ } else if (!g_strcmp0(key, "mac")) {
+ guint str_length;
+ const gchar *str = g_variant_get_string(value, &str_length);
+ rule->mac = g_strdup(str);
+ STC_LOGD("mac: [%s]", rule->mac);
+
} else {
STC_LOGD("Unknown select rule"); //LCOV_EXCL_LINE
}
-
- __STC_LOG_FUNC_EXIT__;
}
gboolean handle_restriction_set(StcRestriction *object,