summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2011-04-15 19:24:45 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2011-04-17 17:25:41 +0200
commitfcc6877521b79609c1d09f3d96ddeab9fc73624c (patch)
treec5a8fddf41286577783744651f9c6cfe615275c9 /plugins
parentc63d4038542f16dc76fb90619bec7790ada2bf09 (diff)
downloadconnman-fcc6877521b79609c1d09f3d96ddeab9fc73624c.tar.gz
connman-fcc6877521b79609c1d09f3d96ddeab9fc73624c.tar.bz2
connman-fcc6877521b79609c1d09f3d96ddeab9fc73624c.zip
ofono: Add IPv6 method and address to the info structure
Diffstat (limited to 'plugins')
-rw-r--r--plugins/ofono.c31
1 files changed, 20 insertions, 11 deletions
diff --git a/plugins/ofono.c b/plugins/ofono.c
index f126de95..4b728a4b 100644
--- a/plugins/ofono.c
+++ b/plugins/ofono.c
@@ -95,8 +95,11 @@ struct modem_data {
struct network_info {
struct connman_network *network;
- enum connman_ipconfig_method method;
- struct connman_ipaddress ipaddress;
+ enum connman_ipconfig_method ipv4_method;
+ struct connman_ipaddress ipv4_address;
+
+ enum connman_ipconfig_method ipv6_method;
+ struct connman_ipaddress ipv6_address;
};
static int modem_probe(struct connman_device *device)
@@ -415,7 +418,7 @@ static void set_connected(struct network_info *info,
{
DBG("network %p connected %d", info->network, connected);
- switch (info->method) {
+ switch (info->ipv4_method) {
case CONNMAN_IPCONFIG_METHOD_UNKNOWN:
case CONNMAN_IPCONFIG_METHOD_OFF:
case CONNMAN_IPCONFIG_METHOD_MANUAL:
@@ -423,13 +426,16 @@ static void set_connected(struct network_info *info,
return;
case CONNMAN_IPCONFIG_METHOD_FIXED:
- connman_network_set_ipv4_method(info->network, info->method);
- connman_network_set_ipaddress(info->network, &info->ipaddress);
+ connman_network_set_ipv4_method(info->network,
+ info->ipv4_method);
+ connman_network_set_ipaddress(info->network,
+ &info->ipv4_address);
break;
case CONNMAN_IPCONFIG_METHOD_DHCP:
- connman_network_set_ipv4_method(info->network, info->method);
+ connman_network_set_ipv4_method(info->network,
+ info->ipv4_method);
break;
}
@@ -604,7 +610,8 @@ static int add_network(struct connman_device *device,
return -ENOMEM;
}
- connman_ipaddress_clear(&info->ipaddress);
+ connman_ipaddress_clear(&info->ipv4_address);
+ connman_ipaddress_clear(&info->ipv6_address);
info->network = network;
connman_network_set_string(network, "Path", path);
@@ -1667,10 +1674,12 @@ static void update_settings(DBusMessageIter *array,
if (g_strcmp0(method, "static") == 0) {
- info->method = CONNMAN_IPCONFIG_METHOD_FIXED;
+ info->ipv4_method =
+ CONNMAN_IPCONFIG_METHOD_FIXED;
} else if (g_strcmp0(method, "dhcp") == 0) {
- info->method = CONNMAN_IPCONFIG_METHOD_DHCP;
+ info->ipv4_method =
+ CONNMAN_IPCONFIG_METHOD_DHCP;
break;
}
} else if (g_str_equal(key, "Address") == TRUE) {
@@ -1700,8 +1709,8 @@ static void update_settings(DBusMessageIter *array,
}
- if (info->method == CONNMAN_IPCONFIG_METHOD_FIXED) {
- connman_ipaddress_set_ipv4(&info->ipaddress, address,
+ if (info->ipv4_method == CONNMAN_IPCONFIG_METHOD_FIXED) {
+ connman_ipaddress_set_ipv4(&info->ipv4_address, address,
netmask, gateway);
}