summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2010-07-28 20:13:56 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2010-07-29 02:12:54 +0200
commitd3a1f0036b1aaa84051eadc107076f7a6efc5dbc (patch)
tree09b58cde43a40345a3f7507eb921273dc1e641c9
parentecb349ca3e73b55f745642be49c2e6f0ac7a1a82 (diff)
downloadconnman-d3a1f0036b1aaa84051eadc107076f7a6efc5dbc.tar.gz
connman-d3a1f0036b1aaa84051eadc107076f7a6efc5dbc.tar.bz2
connman-d3a1f0036b1aaa84051eadc107076f7a6efc5dbc.zip
Add a family member to connman_ipaddress
-rw-r--r--include/ipconfig.h3
-rw-r--r--src/ipconfig.c14
2 files changed, 10 insertions, 7 deletions
diff --git a/include/ipconfig.h b/include/ipconfig.h
index 5f67dcc4..28a3d6ad 100644
--- a/include/ipconfig.h
+++ b/include/ipconfig.h
@@ -33,6 +33,7 @@ extern "C" {
*/
struct connman_ipaddress {
+ int family;
unsigned char prefixlen;
char *local;
char *peer;
@@ -40,7 +41,7 @@ struct connman_ipaddress {
char *gateway;
};
-struct connman_ipaddress *connman_ipaddress_alloc(void);
+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);
diff --git a/src/ipconfig.c b/src/ipconfig.c
index e3bff4c6..c5570635 100644
--- a/src/ipconfig.c
+++ b/src/ipconfig.c
@@ -82,7 +82,7 @@ struct connman_ipdevice {
static GHashTable *ipdevice_hash = NULL;
static GList *ipconfig_list = NULL;
-struct connman_ipaddress *connman_ipaddress_alloc(void)
+struct connman_ipaddress *connman_ipaddress_alloc(int family)
{
struct connman_ipaddress *ipaddress;
@@ -90,6 +90,7 @@ struct connman_ipaddress *connman_ipaddress_alloc(void)
if (ipaddress == NULL)
return NULL;
+ ipaddress->family = family;
ipaddress->prefixlen = 0;
ipaddress->local = NULL;
ipaddress->peer = NULL;
@@ -210,6 +211,7 @@ void connman_ipaddress_copy(struct connman_ipaddress *ipaddress,
if (ipaddress == NULL || source == NULL)
return;
+ ipaddress->family = source->family;
ipaddress->prefixlen = source->prefixlen;
g_free(ipaddress->local);
@@ -596,7 +598,7 @@ void __connman_ipconfig_newaddr(int index, int family, const char *label,
if (ipdevice == NULL)
return;
- ipaddress = connman_ipaddress_alloc();
+ ipaddress = connman_ipaddress_alloc(family);
if (ipaddress == NULL)
return;
@@ -836,13 +838,13 @@ static struct connman_ipconfig *create_ipv6config(int index)
ipv6config->index = index;
ipv6config->type = CONNMAN_IPCONFIG_TYPE_IPV6;
- ipv6config->address = connman_ipaddress_alloc();
+ ipv6config->address = connman_ipaddress_alloc(AF_INET6);
if (ipv6config->address == NULL) {
g_free(ipv6config);
return NULL;
}
- ipv6config->system = connman_ipaddress_alloc();
+ ipv6config->system = connman_ipaddress_alloc(AF_INET6);
ipv6config->ipv6 = NULL;
@@ -873,13 +875,13 @@ struct connman_ipconfig *connman_ipconfig_create(int index)
ipconfig->index = index;
ipconfig->type = CONNMAN_IPCONFIG_TYPE_IPV4;
- ipconfig->address = connman_ipaddress_alloc();
+ ipconfig->address = connman_ipaddress_alloc(AF_INET);
if (ipconfig->address == NULL) {
g_free(ipconfig);
return NULL;
}
- ipconfig->system = connman_ipaddress_alloc();
+ ipconfig->system = connman_ipaddress_alloc(AF_INET);
ipconfig->ipv6 = create_ipv6config(index);