From: Daniel Wagner <[email protected]>
---
src/connman.h | 6 +++---
src/inet.c | 24 ++++--------------------
2 files changed, 7 insertions(+), 23 deletions(-)
diff --git a/src/connman.h b/src/connman.h
index 4bcc37a..0467e9e 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -191,9 +191,9 @@ int __connman_inet_rtnl_addattr_l(struct nlmsghdr *n,
size_t max_length,
int type, const void *data, size_t data_length);
int __connman_inet_rtnl_addattr32(struct nlmsghdr *n, size_t maxlen,
int type, __u32 data);
-int __connman_inet_add_fwmark_rule(int ifindex, int family, uint32_t fwmark);
-int __connman_inet_del_fwmark_rule(int ifindex, int family, uint32_t fwmark);
-int __connman_inet_add_default_to_table(int ifindex, const char *gateway);
+int __connman_inet_add_fwmark_rule(uint32_t table_id, int family, uint32_t
fwmark);
+int __connman_inet_del_fwmark_rule(uint32_t table_id, int family, uint32_t
fwmark);
+int __connman_inet_add_default_to_table(uint32_t table_id, int ifindex, const
char *gateway);
#include <connman/resolver.h>
diff --git a/src/inet.c b/src/inet.c
index eb586e3..8b043ba 100644
--- a/src/inet.c
+++ b/src/inet.c
@@ -2427,40 +2427,25 @@ done:
return ret;
}
-/*
- * Tie the table number to interface index number, substract 1 because
- * indexes are > 0
- */
-static uint32_t get_table_id(int ifindex)
-{
- const uint32_t value = ('c' << 24) | ('m' << 16) | ('a' << 8) | 'n';
-
- return value + ifindex - 1;
-}
-
-int __connman_inet_add_fwmark_rule(int ifindex, int family, uint32_t fwmark)
+int __connman_inet_add_fwmark_rule(uint32_t table_id, int family, uint32_t
fwmark)
{
/* ip rule add fwmark 9876 table 1234 */
- uint32_t table_id = get_table_id(ifindex);
-
return iprule_modify(RTM_NEWRULE, family, table_id, fwmark);
}
-int __connman_inet_del_fwmark_rule(int ifindex, int family, uint32_t fwmark)
+int __connman_inet_del_fwmark_rule(uint32_t table_id, int family, uint32_t
fwmark)
{
- uint32_t table_id = get_table_id(ifindex);
-
return iprule_modify(RTM_DELRULE, family, table_id, fwmark);
}
-int __connman_inet_add_default_to_table(int ifindex, const char *gateway)
+int __connman_inet_add_default_to_table(uint32_t table_id, int ifindex,
+ const char *gateway)
{
/* ip route add default via 1.2.3.4 dev wlan0 table 1234 */
struct __connman_inet_rtnl_handle rth;
unsigned char buf[sizeof(struct in6_addr)];
- uint32_t table_id;
int ret, len;
int family = connman_inet_check_ipaddress(gateway);
@@ -2493,7 +2478,6 @@ int __connman_inet_add_default_to_table(int ifindex,
const char *gateway)
__connman_inet_rtnl_addattr_l(&rth.req.n, sizeof(rth.req), RTA_GATEWAY,
buf, len);
- table_id = get_table_id(ifindex);
if (table_id < 256) {
rth.req.u.r.rt.rtm_table = table_id;
} else {
--
1.8.2.rc3.16.gce432ca
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman