rule->subscriber_id = NULL;
}
-gboolean __validate_rstn_rule(table_restrictions_info *rule,
- enum traffic_restriction_type rstn_type)
+gboolean __validate_rstn_rule(table_restrictions_info *rule)
{
__STC_LOG_FUNC_ENTER__;
return FALSE; //LCOV_EXCL_LINE
}
- if (rstn_type <= RST_UNDEFINDED || rstn_type >= RST_MAX_VALUE) {
- __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__; //LCOV_EXCL_LINE
rule->subscriber_id = g_strdup(str);
STC_LOGD("subscriber_id: [%s]", rule->subscriber_id);
+ } else if (!g_strcmp0(key, "type")) {
+ rule->rstn_type = g_variant_get_uint16(value);
+ STC_LOGD("type: [%u]", (unsigned int) rule->rstn_type);
+
} else {
STC_LOGD("Unknown select rule"); //LCOV_EXCL_LINE
}
g_variant_iter_free(iter);
}
- rule.rstn_type = STC_RSTN_TYPE_DROP;
-
- if (__validate_rstn_rule(&rule, RST_SET) == FALSE) {
- STC_RESTRICTION_DBUS_REPLY_ERROR(invocation, //LCOV_EXCL_LINE
- STC_ERROR_INVALID_PARAMETER);
- __STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
- return TRUE;
- }
-
- table_restrictions_update(&rule);
- /* update restriction rule in runtime structure */
- stc_monitor_rstns_tree_add(&rule);
-
- STC_DBUS_REPLY_ERROR_NONE(invocation);
- __STC_LOG_FUNC_EXIT__;
- return TRUE;
-}
-
-gboolean handle_restriction_exclude(StcRestriction *object,
- GDBusMethodInvocation *invocation,
- GVariant *parameters,
- void *user_data)
-{
- __STC_LOG_FUNC_ENTER__;
- GVariantIter *iter = NULL;
- table_restrictions_info rule;
-
- memset(&rule, 0, sizeof(table_restrictions_info));
- __initialize_rstn_rule(&rule);
-
- g_variant_get(parameters, "a{sv}", &iter);
- if (iter != NULL) {
- stc_manager_gdbus_dict_foreach(iter,
- __stc_extract_restriction_rule,
- &rule);
- g_variant_iter_free(iter);
- }
-
- rule.rstn_type = STC_RSTN_TYPE_ACCEPT;
-
- if (__validate_rstn_rule(&rule, RST_EXCLUDE) == FALSE) {
+ if (__validate_rstn_rule(&rule) == FALSE) {
STC_RESTRICTION_DBUS_REPLY_ERROR(invocation, //LCOV_EXCL_LINE
STC_ERROR_INVALID_PARAMETER);
__STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE
g_variant_iter_free(iter);
}
- if (__validate_rstn_rule(&rule, RST_UNSET) == FALSE) {
+ if (__validate_rstn_rule(&rule) == FALSE) {
STC_RESTRICTION_DBUS_REPLY_ERROR(invocation, //LCOV_EXCL_LINE
STC_ERROR_INVALID_PARAMETER);
__STC_LOG_FUNC_EXIT__; //LCOV_EXCL_LINE