From: Daniel Wagner <[email protected]>
connman_inet_[add|del]_host_route() are now wrappers
around connman_inet_[add|del]_network_route()
---
include/inet.h | 3 +++
src/inet.c | 25 ++++++++++++++++++++++---
2 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/include/inet.h b/include/inet.h
index 7b34900..5fb3a53 100644
--- a/include/inet.h
+++ b/include/inet.h
@@ -48,6 +48,9 @@ int connman_inet_set_address(int index, struct
connman_ipaddress *ipaddress);
int connman_inet_clear_address(int index, struct connman_ipaddress *ipaddress);
int connman_inet_add_host_route(int index, const char *host, const char
*gateway);
int connman_inet_del_host_route(int index, const char *host);
+int connman_inet_add_network_route(int index, const char *host, const char
*gateway,
+ const char *netmask);
+int connman_inet_del_network_route(int index, const char *host);
int connman_inet_set_gateway_address(int index, const char *gateway);
int connman_inet_clear_gateway_address(int index, const char *gateway);
int connman_inet_set_gateway_interface(int index);
diff --git a/src/inet.c b/src/inet.c
index 419126b..a98896c 100644
--- a/src/inet.c
+++ b/src/inet.c
@@ -616,7 +616,20 @@ int connman_inet_clear_address(int index, struct
connman_ipaddress *ipaddress)
return 0;
}
-int connman_inet_add_host_route(int index, const char *host, const char
*gateway)
+int connman_inet_add_host_route(int index, const char *host,
+ const char *gateway)
+{
+ return connman_inet_add_network_route(index, host, gateway, NULL);
+}
+
+int connman_inet_del_host_route(int index, const char *host)
+{
+ return connman_inet_del_network_route(index, host);
+}
+
+int connman_inet_add_network_route(int index, const char *host,
+ const char *gateway,
+ const char *netmask)
{
struct ifreq ifr;
struct rtentry rt;
@@ -638,9 +651,11 @@ int connman_inet_add_host_route(int index, const char
*host, const char *gateway
DBG("ifname %s", ifr.ifr_name);
memset(&rt, 0, sizeof(rt));
- rt.rt_flags = RTF_UP | RTF_HOST;
+ rt.rt_flags = RTF_UP;
if (gateway != NULL)
rt.rt_flags |= RTF_GATEWAY;
+ if (netmask == NULL)
+ rt.rt_flags |= RTF_HOST;
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
@@ -658,6 +673,10 @@ int connman_inet_add_host_route(int index, const char
*host, const char *gateway
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = INADDR_ANY;
+ if (netmask != NULL)
+ addr.sin_addr.s_addr = inet_addr(netmask);
+ else
+ addr.sin_addr.s_addr = INADDR_ANY;
memcpy(&rt.rt_genmask, &addr, sizeof(rt.rt_genmask));
rt.rt_dev = ifr.ifr_name;
@@ -672,7 +691,7 @@ int connman_inet_add_host_route(int index, const char
*host, const char *gateway
return err;
}
-int connman_inet_del_host_route(int index, const char *host)
+int connman_inet_del_network_route(int index, const char *host)
{
struct ifreq ifr;
struct rtentry rt;
--
1.7.3.3
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman