summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Wagner <daniel.wagner@bmw-carit.de>2011-02-23 20:12:06 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2011-02-23 20:12:06 +0100
commitcb27c17378552b6f4ab86c5d28af716a159c28b7 (patch)
tree1022fb5bd36b5abd996f82e0e7f9dba4740ce153
parentc30057af5e6db26136343570d72e14782538405b (diff)
downloadconnman-cb27c17378552b6f4ab86c5d28af716a159c28b7.tar.gz
connman-cb27c17378552b6f4ab86c5d28af716a159c28b7.tar.bz2
connman-cb27c17378552b6f4ab86c5d28af716a159c28b7.zip
ipconfig: Fix IP setters
-rw-r--r--include/inet.h2
-rw-r--r--include/ipconfig.h13
-rw-r--r--src/ipconfig.c20
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)