diff options
author | Daniel Wagner <daniel.wagner@bmw-carit.de> | 2011-02-23 20:12:06 +0100 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-02-23 20:12:06 +0100 |
commit | cb27c17378552b6f4ab86c5d28af716a159c28b7 (patch) | |
tree | 1022fb5bd36b5abd996f82e0e7f9dba4740ce153 | |
parent | c30057af5e6db26136343570d72e14782538405b (diff) | |
download | connman-cb27c17378552b6f4ab86c5d28af716a159c28b7.tar.gz connman-cb27c17378552b6f4ab86c5d28af716a159c28b7.tar.bz2 connman-cb27c17378552b6f4ab86c5d28af716a159c28b7.zip |
ipconfig: Fix IP setters
-rw-r--r-- | include/inet.h | 2 | ||||
-rw-r--r-- | include/ipconfig.h | 13 | ||||
-rw-r--r-- | src/ipconfig.c | 20 |
3 files changed, 26 insertions, 9 deletions
diff --git a/include/inet.h b/include/inet.h index 94d1951c..9ba77815 100644 --- a/include/inet.h +++ b/include/inet.h @@ -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); diff --git a/include/ipconfig.h b/include/ipconfig.h index 7d62330e..fd6d8718 100644 --- a/include/ipconfig.h +++ b/include/ipconfig.h @@ -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, diff --git a/src/ipconfig.c b/src/ipconfig.c index 8b771042..63153f8e 100644 --- a/src/ipconfig.c +++ b/src/ipconfig.c @@ -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) |