summaryrefslogtreecommitdiff
path: root/src/ipconfig.c
diff options
context:
space:
mode:
authorPatrik Flykt <patrik.flykt@linux.intel.com>2012-04-27 17:33:17 +0300
committerMarcel Holtmann <marcel@holtmann.org>2012-04-27 16:45:01 +0200
commit1d2fc4e1c652fa4b2385b2893d844fc4648c6762 (patch)
treec73c7868e7dfc8f3c37916a9a0e7c8319ef9fa62 /src/ipconfig.c
parentb9d16f7fe9c5f42cd14b5839a81deae3ccd94c14 (diff)
downloadconnman-1d2fc4e1c652fa4b2385b2893d844fc4648c6762.tar.gz
connman-1d2fc4e1c652fa4b2385b2893d844fc4648c6762.tar.bz2
connman-1d2fc4e1c652fa4b2385b2893d844fc4648c6762.zip
ipconfig: Add ipconfig type to __connman_ipconfig_get_gateway_from_index()
In order to be able to request a certain ipconfig type, add the type as a parameter to __connman_ipconfig_get_gateway_from_index().
Diffstat (limited to 'src/ipconfig.c')
-rw-r--r--src/ipconfig.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/ipconfig.c b/src/ipconfig.c
index 8dc0a59b..f4a01732 100644
--- a/src/ipconfig.c
+++ b/src/ipconfig.c
@@ -1083,7 +1083,8 @@ unsigned int __connman_ipconfig_get_flags_from_index(int index)
return ipdevice->flags;
}
-const char *__connman_ipconfig_get_gateway_from_index(int index)
+const char *__connman_ipconfig_get_gateway_from_index(int index,
+ enum connman_ipconfig_type type)
{
struct connman_ipdevice *ipdevice;
@@ -1091,19 +1092,23 @@ const char *__connman_ipconfig_get_gateway_from_index(int index)
if (ipdevice == NULL)
return NULL;
- if (ipdevice->ipv4_gateway != NULL)
- return ipdevice->ipv4_gateway;
+ if (type != CONNMAN_IPCONFIG_TYPE_IPV6) {
+ if (ipdevice->ipv4_gateway != NULL)
+ return ipdevice->ipv4_gateway;
- if (ipdevice->config_ipv4 != NULL &&
- ipdevice->config_ipv4->address != NULL)
- return ipdevice->config_ipv4->address->gateway;
+ if (ipdevice->config_ipv4 != NULL &&
+ ipdevice->config_ipv4->address != NULL)
+ return ipdevice->config_ipv4->address->gateway;
+ }
- if (ipdevice->ipv6_gateway != NULL)
- return ipdevice->ipv6_gateway;
+ if (type != CONNMAN_IPCONFIG_TYPE_IPV4) {
+ if (ipdevice->ipv6_gateway != NULL)
+ return ipdevice->ipv6_gateway;
- if (ipdevice->config_ipv6 != NULL &&
- ipdevice->config_ipv6->address != NULL)
- return ipdevice->config_ipv6->address->gateway;
+ if (ipdevice->config_ipv6 != NULL &&
+ ipdevice->config_ipv6->address != NULL)
+ return ipdevice->config_ipv6->address->gateway;
+ }
return NULL;
}