diff options
author | Samuel Ortiz <sameo@linux.intel.com> | 2011-04-15 19:24:45 +0200 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-04-17 17:25:41 +0200 |
commit | fcc6877521b79609c1d09f3d96ddeab9fc73624c (patch) | |
tree | c5a8fddf41286577783744651f9c6cfe615275c9 /plugins | |
parent | c63d4038542f16dc76fb90619bec7790ada2bf09 (diff) | |
download | connman-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.c | 31 |
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); } |