summaryrefslogtreecommitdiff
path: root/src/inet.c
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2011-01-26 15:46:44 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2011-01-26 15:46:44 +0100
commita089c11d2e4cd8149a179f605c19c4fde5a55756 (patch)
tree2e764b251f2c2fef147f0d7b33a4ec033e8b101d /src/inet.c
parent034e022c01d625f0cd9fac7aaa96eee980f1cb3e (diff)
downloadconnman-a089c11d2e4cd8149a179f605c19c4fde5a55756.tar.gz
connman-a089c11d2e4cd8149a179f605c19c4fde5a55756.tar.bz2
connman-a089c11d2e4cd8149a179f605c19c4fde5a55756.zip
inet: IPv6 network route setting API
Diffstat (limited to 'src/inet.c')
-rw-r--r--src/inet.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/inet.c b/src/inet.c
index 4523f163..2f287f63 100644
--- a/src/inet.c
+++ b/src/inet.c
@@ -733,7 +733,8 @@ int connman_inet_del_network_route(int index, const char *host)
return err;
}
-int connman_inet_del_ipv6_host_route(int index, const char *host)
+int connman_inet_del_ipv6_network_route(int index, const char *host,
+ unsigned char prefix_len)
{
struct in6_rtmsg rt;
int sk, err;
@@ -745,7 +746,7 @@ int connman_inet_del_ipv6_host_route(int index, const char *host)
memset(&rt, 0, sizeof(rt));
- rt.rtmsg_dst_len = 128;
+ rt.rtmsg_dst_len = prefix_len;
err = inet_pton(AF_INET6, host, &rt.rtmsg_dst);
if (err < 0)
@@ -771,8 +772,14 @@ out:
return err;
}
-int connman_inet_add_ipv6_host_route(int index, const char *host,
- const char *gateway)
+int connman_inet_del_ipv6_host_route(int index, const char *host)
+{
+ return connman_inet_del_ipv6_network_route(index, host, 128);
+}
+
+int connman_inet_add_ipv6_network_route(int index, const char *host,
+ const char *gateway,
+ unsigned char prefix_len)
{
struct in6_rtmsg rt;
int sk, err;
@@ -784,7 +791,7 @@ int connman_inet_add_ipv6_host_route(int index, const char *host,
memset(&rt, 0, sizeof(rt));
- rt.rtmsg_dst_len = 128;
+ rt.rtmsg_dst_len = prefix_len;
err = inet_pton(AF_INET6, host, &rt.rtmsg_dst);
if (err < 0)
@@ -815,6 +822,12 @@ out:
return err;
}
+int connman_inet_add_ipv6_host_route(int index, const char *host,
+ const char *gateway)
+{
+ return connman_inet_add_ipv6_network_route(index, host, gateway, 128);
+}
+
int connman_inet_set_ipv6_gateway_address(int index, const char *gateway)
{
struct in6_rtmsg rt;