diff options
author | Patrik Flykt <patrik.flykt@linux.intel.com> | 2012-04-27 17:33:17 +0300 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-04-27 16:45:01 +0200 |
commit | 1d2fc4e1c652fa4b2385b2893d844fc4648c6762 (patch) | |
tree | c73c7868e7dfc8f3c37916a9a0e7c8319ef9fa62 /src/ipconfig.c | |
parent | b9d16f7fe9c5f42cd14b5839a81deae3ccd94c14 (diff) | |
download | connman-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.c | 27 |
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; } |