case AF_INET6:
return g_hash_table_lookup(table_hash_ipv6, table_name);
}
-
+
return NULL;
}
case AF_INET6:
return g_hash_table_replace(table_hash_ipv6, table_name, table);
}
-
+
return false;
}
case AF_INET6:
return g_hash_table_remove(table_hash_ipv6, table_name);
}
-
+
return false;
}
for (offset = 0; offset < size;
offset += iptables_entry_get_next_offset(&entry)) {
builtin = -1;
-
+
switch (entries->type) {
case AF_INET:
entry.entry = (void* )entries->entry + offset;
return true;
target = iptables_entry_get_target(e);
-
+
if (!target)
return false;
struct connman_iptables_entry *head;
struct xt_entry_target *target;
int builtin;
-
+
switch (table->type) {
case AF_INET:
case AF_INET6:
/* User defined chain */
target = iptables_entry_get_target(head);
-
+
if (!target)
continue;
if (is_fallthrough(modified_entry)) {
t = (struct xt_standard_target *)
iptables_entry_get_target(modified_entry);
-
+
if (!t)
return;
underflow = iptables_table_get_info_underflow(table);
valid_hooks = iptables_table_get_info_valid_hooks(table);
size = iptables_table_get_info_size(table);
-
+
DBG("%s valid_hooks=0x%08x, num_entries=%u, size=%u",
iptables_table_get_info_name(table),
valid_hooks,
unsigned int *underflow;
unsigned int valid_hooks;
unsigned int size;
-
+
hook_entry = iptables_replace_get_hook_entry(repl);
underflow = iptables_replace_get_underflow(repl);
valid_hooks = iptables_replace_get_valid_hooks(repl);
struct connman_iptables *table = user_data;
struct connman_iptables_entry new_entry = { 0 };
u_int16_t next_offset;
-
+
new_entry.type = entry->type;
next_offset = iptables_entry_get_next_offset(entry);
default:
return -EINVAL;
}
-
+
return iptables_add_entry(table, &new_entry, NULL, builtin,
table->num_entries);
}
g_list_free(table->entries);
g_free(table->name);
-
+
if (table->type == AF_INET) {
g_free(table->info);
g_free(table->blob_entries);
is_builtin = false;
is_user_defined = false;
-
+
DBG("target %s", target_name);
-
+
if (!table)
return NULL;
if (is_builtin || is_user_defined)
xt_t = xtables_find_target(get_standard_target(table->type),
XTF_LOAD_MUST_SUCCEED);
- else
+ else
xt_t = xtables_find_target(target_name, XTF_TRY_LOAD);
disable_jmp();
g_free(table->name);
table->name = g_strdup(table_name);
-
+
hash_table_replace(type, table->name, table);
return table;
if (invert)
ctx->ip->invflags |= IP6T_INV_DSTIP;
}
-
+
break;
case 'i':
/* In interface specification */
if (invert)
ctx->ip->invflags |= IPT_INV_VIA_IN;
}
-
+
if (ctx->type == AF_INET6) {
g_stpcpy(ctx->ipv6->iniface, optarg);
memset(ctx->ipv6->iniface_mask, 0xff, len + 1);
default:
return -1;
}
-
+
if (!err) {
current_type = type;
} else {
if(!find_chain_head(table, chain))
return -ENOENT; // Not Found
-
+
return 0; // Found
}
int err;
err = setup_xtables(type);
-
+
if (err < 0)
return err;
int err;
err = setup_xtables(type);
-
+
if (err < 0)
return err;
ctx = g_try_new0(struct parse_context, 1);
if (!ctx)
return -ENOMEM;
-
+
ctx->type = type;
DBG("%d -t %s -I %s %s", type, table_name, chain, rule_spec);
int err;
err = setup_xtables(type);
-
+
if (err < 0)
return err;
ctx = g_try_new0(struct parse_context, 1);
if (!ctx)
return -ENOMEM;
-
+
ctx->type = type;
DBG("%d -t %s -D %s %s", type, table_name, chain, rule_spec);
unsigned int cnt;
err = setup_xtables(type);
-
+
if (err < 0)
return err;
repl.r = iptables_blob(table);
if (!repl.r)
return -ENOMEM;
-
+
break;
case AF_INET6:
repl.r6 = ip6tables_blob(table);
for (list = table->entries, cnt = 0; list; list = list->next, cnt++) {
e = list->data;
if (e->counter_idx >= 0) {
-
+
switch (type) {
case AF_INET:
counters->counters[cnt] =
g_free(repl.r);
g_free(repl.r6);
-
+
reset_xtables();
return err;
int err;
err = setup_xtables(type);
-
+#if defined TIZEN_EXT
+ if (err < 0) {
+ g_free(cbd);
+ return err;
+ }
+#else
if (err < 0)
return err;
+#endif
table = get_table(type, table_name);
if (!table) {
iterate_chains_cb, cbd);
g_free(cbd);
-
+
reset_xtables();
return 0;