"OUT_OF_MEMORY",
"INVALID_PARAMETER",
"NO_DATA",
+ "ALREADY_DATA",
"UNINITIALIZED",
+ "PERMISSION_DENIED",
"NOTIMPL"
};
rule->app_id = NULL;
rule->ifname = NULL;
rule->iftype = STC_IFACE_ALL;
- rule->rst_state = STC_RESTRICTION_REMOVED;
- rule->rcv_limit = 0;
- rule->send_limit = 0;
- rule->rcv_warn_limit = 0;
- rule->send_warn_limit = 0;
+ rule->rst_type = STC_RSTN_TYPE_UNKNOWN;
+ rule->data_limit = 0;
+ rule->data_warn_limit = 0;
rule->roaming = STC_ROAMING_DISABLE;
- rule->imsi = NULL;
+ rule->subscriber_id = NULL;
}
gboolean __validate_rstn_rule(table_restrictions_info *rule,
__STC_LOG_FUNC_ENTER__;
if (rule == NULL) {
- __STC_LOG_FUNC_EXIT__;
- return FALSE;
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
+ return FALSE; //LCOV_EXCL_LINE
}
if (rst_type <= RST_UNDEFINDED || rst_type >= RST_MAX_VALUE) {
- __STC_LOG_FUNC_EXIT__;
- return FALSE;
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
+ return FALSE; //LCOV_EXCL_LINE
}
if (rule->iftype <= STC_IFACE_UNKNOWN ||
rule->iftype >= STC_IFACE_LAST_ELEM) {
- __STC_LOG_FUNC_EXIT__;
- return FALSE;
- }
-
- if (rst_type == RST_SET) {
- if (rule->rcv_limit < 0) {
- __STC_LOG_FUNC_EXIT__;
- return FALSE;
- }
-
- if (rule->send_limit < 0) {
- __STC_LOG_FUNC_EXIT__;
- return FALSE;
- }
-
- if (rule->rcv_warn_limit < 0) {
- __STC_LOG_FUNC_EXIT__;
- return FALSE;
- }
-
- if (rule->send_warn_limit < 0) {
- __STC_LOG_FUNC_EXIT__;
- return FALSE;
- }
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
+ return FALSE; //LCOV_EXCL_LINE
}
if (rule->roaming >= STC_ROAMING_LAST_ELEM) {
- __STC_LOG_FUNC_EXIT__;
- return FALSE;
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
+ return FALSE; //LCOV_EXCL_LINE
}
- if (rule->imsi == NULL) {
- __STC_LOG_FUNC_EXIT__;
- return FALSE;
+ if (rule->subscriber_id == NULL) {
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
+ return FALSE; //LCOV_EXCL_LINE
}
if (rule->app_id == NULL) {
- __STC_LOG_FUNC_EXIT__;
- return FALSE;
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
+ return FALSE; //LCOV_EXCL_LINE
}
__STC_LOG_FUNC_EXIT__;
__STC_LOG_FUNC_ENTER__;
if (!builder || !info) {
- __STC_LOG_FUNC_EXIT__;
- return;
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
+ return; //LCOV_EXCL_LINE
}
g_variant_builder_add(builder, "{sv}", "app_id",
g_variant_builder_add(builder, "{sv}", "iftype",
g_variant_new_uint16(info->iftype));
- g_variant_builder_add(builder, "{sv}", "rst_state",
- g_variant_new_uint16(info->rst_state));
-
- g_variant_builder_add(builder, "{sv}", "rcv_limit",
- g_variant_new_uint64(info->rcv_limit));
-
- g_variant_builder_add(builder, "{sv}", "send_limit",
- g_variant_new_uint64(info->send_limit));
+ g_variant_builder_add(builder, "{sv}", "rst_type",
+ g_variant_new_uint16(info->rst_type));
- g_variant_builder_add(builder, "{sv}", "rcv_warn_limit",
- g_variant_new_uint64(info->rcv_warn_limit));
+ g_variant_builder_add(builder, "{sv}", "data_limit",
+ g_variant_new_int64(info->data_limit));
- g_variant_builder_add(builder, "{sv}", "send_warn_limit",
- g_variant_new_uint64(info->send_warn_limit));
+ g_variant_builder_add(builder, "{sv}", "data_warn_limit",
+ g_variant_new_int64(info->data_warn_limit));
g_variant_builder_add(builder, "{sv}", "roaming",
g_variant_new_uint16(info->roaming));
- g_variant_builder_add(builder, "{sv}", "imsi",
- g_variant_new_string(info->imsi));
+ g_variant_builder_add(builder, "{sv}", "subscriber_id",
+ g_variant_new_string(info->subscriber_id));
__STC_LOG_FUNC_EXIT__;
}
GVariantBuilder sub_builder;
if (!info || !builder) {
- __STC_LOG_FUNC_EXIT__;
- return STC_CANCEL;
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
+ return STC_CANCEL; //LCOV_EXCL_LINE
}
g_variant_builder_init(&sub_builder, G_VARIANT_TYPE("a{sv}"));
GVariantBuilder *builder = (GVariantBuilder *)user_data;
if (!info || !builder) {
- __STC_LOG_FUNC_EXIT__;
- return STC_CANCEL;
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
+ return STC_CANCEL; //LCOV_EXCL_LINE
}
__stc_restriction_app_info_builder_add(builder, info);
table_restrictions_info *rule =
(table_restrictions_info *) user_data;
if (rule == NULL) {
- __STC_LOG_FUNC_EXIT__;
- return;
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
+ return; //LCOV_EXCL_LINE
}
if (!g_strcmp0(key, "app_id")) {
rule->iftype = g_variant_get_uint16(value);
STC_LOGD("iftype: [%u]", (unsigned int) rule->iftype);
- } else if (!g_strcmp0(key, "rcv_limit")) {
- rule->rcv_limit = g_variant_get_uint64(value);
- STC_LOGD("rcv_limit: [%llu]", rule->rcv_limit);
+ } else if (!g_strcmp0(key, "data_limit")) {
+ rule->data_limit = g_variant_get_int64(value);
+ STC_LOGD("data_limit: [%lld]", rule->data_limit);
- } else if (!g_strcmp0(key, "send_limit")) {
- rule->send_limit = g_variant_get_uint64(value);
- STC_LOGD("send_limit: [%llu]", rule->send_limit);
-
- } else if (!g_strcmp0(key, "rcv_warn_limit")) {
- rule->rcv_warn_limit = g_variant_get_uint64(value);
- STC_LOGD("rcv_warn_limit: [%llu]", rule->rcv_warn_limit);
-
- } else if (!g_strcmp0(key, "send_warn_limit")) {
- rule->send_warn_limit = g_variant_get_uint64(value);
- STC_LOGD("send_warn_limit: [%llu]", rule->send_warn_limit);
+ } else if (!g_strcmp0(key, "data_warn_limit")) {
+ rule->data_warn_limit = g_variant_get_int64(value);
+ STC_LOGD("data_warn_limit: [%lld]", rule->data_warn_limit);
} else if (!g_strcmp0(key, "roaming")) {
rule->roaming = g_variant_get_uint16(value);
STC_LOGD("roaming: [%u]", rule->roaming);
- } else if (!g_strcmp0(key, "imsi")) {
+ } else if (!g_strcmp0(key, "subscriber_id")) {
guint str_length;
const gchar *str = g_variant_get_string(value, &str_length);
- rule->imsi = g_strdup(str);
- STC_LOGD("imsi: [%s]", rule->imsi);
+ rule->subscriber_id = g_strdup(str);
+ STC_LOGD("subscriber_id: [%s]", rule->subscriber_id);
} else {
- STC_LOGD("Unknown select rule");
+ STC_LOGD("Unknown select rule"); //LCOV_EXCL_LINE
}
__STC_LOG_FUNC_EXIT__;
g_variant_iter_free(iter);
}
- rule.rst_state = STC_RESTRICTION_REMOVED;
+ rule.rst_type = STC_RSTN_TYPE_BLOCKED;
if (__validate_rstn_rule(&rule, RST_SET) == FALSE) {
- STC_RESTRICTION_DBUS_REPLY_ERROR(invocation,
+ STC_RESTRICTION_DBUS_REPLY_ERROR(invocation, //LCOV_EXCL_LINE
STC_ERROR_INVALID_PARAMETER);
- __STC_LOG_FUNC_EXIT__;
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
return TRUE;
}
g_variant_iter_free(iter);
}
- rule.rst_state = STC_RESTRICTION_EXCLUDED;
+ rule.rst_type = STC_RSTN_TYPE_EXCLUDED;
if (__validate_rstn_rule(&rule, RST_EXCLUDE) == FALSE) {
- STC_RESTRICTION_DBUS_REPLY_ERROR(invocation,
+ STC_RESTRICTION_DBUS_REPLY_ERROR(invocation, //LCOV_EXCL_LINE
STC_ERROR_INVALID_PARAMETER);
- __STC_LOG_FUNC_EXIT__;
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
return TRUE;
}
return TRUE;
}
-gboolean handle_restriction_remove(StcRestriction *object,
+gboolean handle_restriction_unset(StcRestriction *object,
GDBusMethodInvocation *invocation,
GVariant *parameters,
void *user_data)
}
if (__validate_rstn_rule(&rule, RST_UNSET) == FALSE) {
- STC_RESTRICTION_DBUS_REPLY_ERROR(invocation,
+ STC_RESTRICTION_DBUS_REPLY_ERROR(invocation, //LCOV_EXCL_LINE
STC_ERROR_INVALID_PARAMETER);
- __STC_LOG_FUNC_EXIT__;
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
return TRUE;
}
- table_restrictions_delete(rule.app_id, rule.iftype, rule.imsi);
+ table_restrictions_delete(rule.app_id, rule.iftype, rule.subscriber_id);
/* remove restriction rule from runtime structure */
stc_monitor_rstns_tree_remove(&rule);
__table_restrictions_per_app_cb,
builder);
if (ret < STC_ERROR_NONE) {
- g_variant_builder_unref(builder);
- STC_RESTRICTION_DBUS_REPLY_ERROR(invocation, ret);
- __STC_LOG_FUNC_EXIT__;
- return TRUE;
+ g_variant_builder_unref(builder); //LCOV_EXCL_LINE
+ STC_RESTRICTION_DBUS_REPLY_ERROR(invocation, ret); //LCOV_EXCL_LINE
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
+ return TRUE; //LCOV_EXCL_LINE
}
return_parameters = g_variant_new("(ia{sv})", STC_ERROR_NONE, builder);
ret = table_restrictions_foreach(__table_restrictions_foreach_app_cb,
builder);
if (ret < STC_ERROR_NONE) {
- g_variant_builder_unref(builder);
- STC_RESTRICTION_DBUS_REPLY_ERROR(invocation, ret);
- __STC_LOG_FUNC_EXIT__;
- return TRUE;
+ g_variant_builder_unref(builder); //LCOV_EXCL_LINE
+ STC_RESTRICTION_DBUS_REPLY_ERROR(invocation, ret); //LCOV_EXCL_LINE
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
+ return TRUE; //LCOV_EXCL_LINE
}
return_parameters = g_variant_new("(iaa{sv})", STC_ERROR_NONE, builder);
ret = table_restrictions_get_restriction_state(app_id, iftype, &state);
if (ret < STC_ERROR_NONE) {
- STC_RESTRICTION_DBUS_REPLY_ERROR(invocation, ret);
- __STC_LOG_FUNC_EXIT__;
+ STC_RESTRICTION_DBUS_REPLY_ERROR(invocation, ret); //LCOV_EXCL_LINE
+ __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
return TRUE;
}