ipconfig: Fix IP setters
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Wed, 23 Feb 2011 19:12:06 +0000 (20:12 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Wed, 23 Feb 2011 19:12:06 +0000 (20:12 +0100)
include/inet.h
include/ipconfig.h
src/ipconfig.c

index 94d1951..9ba7781 100644 (file)
@@ -70,8 +70,6 @@ int connman_inet_del_ipv6_host_route(int index, const char *host);
 int connman_inet_set_ipv6_gateway_address(int index, const char *gateway);
 int connman_inet_clear_ipv6_gateway_address(int index, const char *gateway);
 
-void connman_ipaddress_set_ipv4(struct connman_ipaddress *ipaddress,
-               const char *address, const char *netmask, const char *gateway);
 int connman_inet_add_to_bridge(int index, const char *bridge);
 int connman_inet_remove_from_bridge(int index, const char *bridge);
 
index 7d62330..fd6d871 100644 (file)
@@ -43,8 +43,14 @@ struct connman_ipaddress {
 
 struct connman_ipaddress *connman_ipaddress_alloc(int family);
 void connman_ipaddress_free(struct connman_ipaddress *ipaddress);
-void connman_ipaddress_set(struct connman_ipaddress *ipaddress,
-               const char *address, const char *netmask, const char *gateway);
+int connman_ipaddress_set_ipv4(struct connman_ipaddress *ipaddress,
+                               const char *address, const char *netmask,
+                               const char *gateway);
+int connman_ipaddress_set_ipv6(struct connman_ipaddress *ipaddress,
+                               const char *address, const char *gateway,
+                               unsigned char prefix_length);
+void connman_ipaddress_set_peer(struct connman_ipaddress *ipaddress,
+                               const char *peer);
 void connman_ipaddress_clear(struct connman_ipaddress *ipaddress);
 void connman_ipaddress_copy(struct connman_ipaddress *ipaddress,
                                        struct connman_ipaddress *source);
@@ -88,9 +94,6 @@ const char *connman_ipconfig_get_ifname(struct connman_ipconfig *ipconfig);
 
 void connman_ipconfig_set_ops(struct connman_ipconfig *ipconfig,
                                const struct connman_ipconfig_ops *ops);
-int connman_ipaddress_set_ipv6(struct connman_ipaddress *ipaddress,
-                               const char *address, const char *gateway,
-                                               unsigned char prefix_length);
 int connman_ipconfig_set_method(struct connman_ipconfig *ipconfig,
                                        enum connman_ipconfig_method method);
 void connman_ipconfig_bind(struct connman_ipconfig *ipconfig,
index 8b77104..63153f8 100644 (file)
@@ -168,6 +168,8 @@ int connman_ipaddress_set_ipv6(struct connman_ipaddress *ipaddress,
        DBG("prefix_len %d address %s gateway %s",
                        prefix_length, address, gateway);
 
+       ipaddress->family = CONNMAN_IPCONFIG_TYPE_IPV6;
+
        ipaddress->prefixlen = prefix_length;
 
        g_free(ipaddress->local);
@@ -179,11 +181,13 @@ int connman_ipaddress_set_ipv6(struct connman_ipaddress *ipaddress,
        return 0;
 }
 
-void connman_ipaddress_set_ipv4(struct connman_ipaddress *ipaddress,
+int connman_ipaddress_set_ipv4(struct connman_ipaddress *ipaddress,
                const char *address, const char *netmask, const char *gateway)
 {
        if (ipaddress == NULL)
-               return;
+               return -EINVAL;
+
+       ipaddress->family = CONNMAN_IPCONFIG_TYPE_IPV4;
 
        ipaddress->prefixlen = __connman_ipconfig_netmask_prefix_len(netmask);
 
@@ -192,6 +196,18 @@ void connman_ipaddress_set_ipv4(struct connman_ipaddress *ipaddress,
 
        g_free(ipaddress->gateway);
        ipaddress->gateway = g_strdup(gateway);
+
+       return 0;
+}
+
+void connman_ipaddress_set_peer(struct connman_ipaddress *ipaddress,
+                               const char *peer)
+{
+       if (ipaddress == NULL)
+               return;
+
+       g_free(ipaddress->peer);
+       ipaddress->peer = g_strdup(peer);
 }
 
 void connman_ipaddress_clear(struct connman_ipaddress *ipaddress)