When interface name is needed, then just get it from index.
This should minimize the race conditions when interface name is
changed.
---
src/connman.h | 17 +++--
src/ipconfig.c | 193 ++++++++++++++++++++++++++++++++-------------------------
src/ipv6pd.c | 9 +--
src/service.c | 35 ++++++-----
4 files changed, 143 insertions(+), 111 deletions(-)
diff --git a/src/connman.h b/src/connman.h
index e323385..0e3ec47 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -275,14 +275,14 @@ struct connman_ipaddress {
};
struct connman_ipconfig_ops {
- void (*up) (struct connman_ipconfig *ipconfig);
- void (*down) (struct connman_ipconfig *ipconfig);
- void (*lower_up) (struct connman_ipconfig *ipconfig);
- void (*lower_down) (struct connman_ipconfig *ipconfig);
- void (*ip_bound) (struct connman_ipconfig *ipconfig);
- void (*ip_release) (struct connman_ipconfig *ipconfig);
- void (*route_set) (struct connman_ipconfig *ipconfig);
- void (*route_unset) (struct connman_ipconfig *ipconfig);
+ void (*up) (struct connman_ipconfig *ipconfig, const char *ifname);
+ void (*down) (struct connman_ipconfig *ipconfig, const char *ifname);
+ void (*lower_up) (struct connman_ipconfig *ipconfig, const char
*ifname);
+ void (*lower_down) (struct connman_ipconfig *ipconfig, const char
*ifname);
+ void (*ip_bound) (struct connman_ipconfig *ipconfig, const char
*ifname);
+ void (*ip_release) (struct connman_ipconfig *ipconfig, const char
*ifname);
+ void (*route_set) (struct connman_ipconfig *ipconfig, const char
*ifname);
+ void (*route_unset) (struct connman_ipconfig *ipconfig, const char
*ifname);
};
struct connman_ipconfig *__connman_ipconfig_create(int index,
@@ -304,7 +304,6 @@ void *__connman_ipconfig_get_data(struct connman_ipconfig
*ipconfig);
void __connman_ipconfig_set_data(struct connman_ipconfig *ipconfig, void
*data);
int __connman_ipconfig_get_index(struct connman_ipconfig *ipconfig);
-const char *__connman_ipconfig_get_ifname(struct connman_ipconfig *ipconfig);
void __connman_ipconfig_set_ops(struct connman_ipconfig *ipconfig,
const struct connman_ipconfig_ops *ops);
diff --git a/src/ipconfig.c b/src/ipconfig.c
index 68ece54..9c29e62 100644
--- a/src/ipconfig.c
+++ b/src/ipconfig.c
@@ -62,7 +62,6 @@ struct connman_ipconfig {
struct connman_ipdevice {
int index;
- char *ifname;
unsigned short type;
unsigned int flags;
char *address;
@@ -234,6 +233,13 @@ static void set_ipv6_state(gchar *ifname, bool enable)
fclose(f);
}
+static void set_ipv6_state_by_index(int ifindex, bool enable)
+{
+ char *ifname = connman_inet_ifname(ifindex);
+ set_ipv6_state(ifname, enable);
+ g_free(ifname);
+}
+
static int get_ipv6_privacy(gchar *ifname)
{
gchar *path;
@@ -295,6 +301,13 @@ static void set_ipv6_privacy(gchar *ifname, int value)
fclose(f);
}
+static void set_ipv6_privacy_by_index(int ifindex, int value)
+{
+ char *ifname = connman_inet_ifname(ifindex);
+ set_ipv6_privacy(ifname, value);
+ g_free(ifname);
+}
+
static int get_rp_filter(void)
{
FILE *f;
@@ -360,6 +373,8 @@ bool __connman_ipconfig_ipv6_privacy_enabled(struct
connman_ipconfig *ipconfig)
bool __connman_ipconfig_ipv6_is_enabled(struct connman_ipconfig *ipconfig)
{
struct connman_ipdevice *ipdevice;
+ char *ifname;
+ bool ret;
if (!ipconfig)
return false;
@@ -369,15 +384,19 @@ bool __connman_ipconfig_ipv6_is_enabled(struct
connman_ipconfig *ipconfig)
if (!ipdevice)
return false;
- return get_ipv6_state(ipdevice->ifname);
+ ifname = connman_inet_ifname(ipconfig->index);
+ ret = get_ipv6_state(ifname);
+ g_free(ifname);
+
+ return ret;
}
static void free_ipdevice(gpointer data)
{
struct connman_ipdevice *ipdevice = data;
+ char *ifname = connman_inet_ifname(ipdevice->index);
- connman_info("%s {remove} index %d", ipdevice->ifname,
- ipdevice->index);
+ connman_info("%s {remove} index %d", ifname, ipdevice->index);
if (ipdevice->config_ipv4) {
__connman_ipconfig_unref(ipdevice->config_ipv4);
@@ -396,10 +415,10 @@ static void free_ipdevice(gpointer data)
g_free(ipdevice->address);
- set_ipv6_state(ipdevice->ifname, ipdevice->ipv6_enabled);
- set_ipv6_privacy(ipdevice->ifname, ipdevice->ipv6_privacy);
+ set_ipv6_state(ifname, ipdevice->ipv6_enabled);
+ set_ipv6_privacy(ifname, ipdevice->ipv6_privacy);
- g_free(ipdevice->ifname);
+ g_free(ifname);
g_free(ipdevice);
}
@@ -428,15 +447,20 @@ static void update_stats(struct connman_ipdevice
*ipdevice,
struct rtnl_link_stats *stats)
{
struct connman_service *service;
+ char *ifname;
if (stats->rx_packets == 0 && stats->tx_packets == 0)
return;
- connman_info("%s {RX} %u packets %u bytes", ipdevice->ifname,
+ ifname = connman_inet_ifname(ipdevice->index);
+
+ connman_info("%s {RX} %u packets %u bytes", ifname,
stats->rx_packets, stats->rx_bytes);
- connman_info("%s {TX} %u packets %u bytes", ipdevice->ifname,
+ connman_info("%s {TX} %u packets %u bytes", ifname,
stats->tx_packets, stats->tx_bytes);
+ g_free(ifname);
+
if (!ipdevice->config_ipv4 && !ipdevice->config_ipv6)
return;
@@ -476,43 +500,34 @@ void __connman_ipconfig_newlink(int index, unsigned short
type,
GString *str;
bool up = false, down = false;
bool lower_up = false, lower_down = false;
+ char *ifname;
DBG("index %d", index);
if (type == ARPHRD_LOOPBACK)
return;
- ipdevice = g_hash_table_lookup(ipdevice_hash, GINT_TO_POINTER(index));
- if (ipdevice) {
- char *ifname = connman_inet_ifname(index);
- if (g_strcmp0(ipdevice->ifname, ifname) != 0) {
- DBG("interface name changed %s -> %s",
- ipdevice->ifname, ifname);
-
- g_free(ipdevice->ifname);
- ipdevice->ifname = ifname;
- } else
- g_free(ifname);
+ ifname = connman_inet_ifname(index);
+ ipdevice = g_hash_table_lookup(ipdevice_hash, GINT_TO_POINTER(index));
+ if (ipdevice)
goto update;
- }
ipdevice = g_try_new0(struct connman_ipdevice, 1);
if (!ipdevice)
- return;
+ goto out;
ipdevice->index = index;
- ipdevice->ifname = connman_inet_ifname(index);
ipdevice->type = type;
- ipdevice->ipv6_enabled = get_ipv6_state(ipdevice->ifname);
- ipdevice->ipv6_privacy = get_ipv6_privacy(ipdevice->ifname);
+ ipdevice->ipv6_enabled = get_ipv6_state(ifname);
+ ipdevice->ipv6_privacy = get_ipv6_privacy(ifname);
ipdevice->address = g_strdup(address);
g_hash_table_insert(ipdevice_hash, GINT_TO_POINTER(index), ipdevice);
- connman_info("%s {create} index %d type %d <%s>", ipdevice->ifname,
+ connman_info("%s {create} index %d type %d <%s>", ifname,
index, type, type2str(type));
update:
@@ -521,7 +536,7 @@ update:
update_stats(ipdevice, stats);
if (flags == ipdevice->flags)
- return;
+ goto out;
if ((ipdevice->flags & IFF_UP) != (flags & IFF_UP)) {
if (flags & IFF_UP)
@@ -543,7 +558,7 @@ update:
str = g_string_new(NULL);
if (!str)
- return;
+ goto out;
if (flags & IFF_UP)
g_string_append(str, "UP");
@@ -556,8 +571,7 @@ update:
if (flags & IFF_LOWER_UP)
g_string_append(str, ",LOWER_UP");
- connman_info("%s {update} flags %u <%s>", ipdevice->ifname,
- flags, str->str);
+ connman_info("%s {update} flags %u <%s>", ifname, flags, str->str);
g_string_free(str, TRUE);
@@ -572,26 +586,30 @@ update:
continue;
if (up && ipconfig->ops->up)
- ipconfig->ops->up(ipconfig);
+ ipconfig->ops->up(ipconfig, ifname);
if (lower_up && ipconfig->ops->lower_up)
- ipconfig->ops->lower_up(ipconfig);
+ ipconfig->ops->lower_up(ipconfig, ifname);
if (lower_down && ipconfig->ops->lower_down)
- ipconfig->ops->lower_down(ipconfig);
+ ipconfig->ops->lower_down(ipconfig, ifname);
if (down && ipconfig->ops->down)
- ipconfig->ops->down(ipconfig);
+ ipconfig->ops->down(ipconfig, ifname);
}
if (lower_up)
__connman_ipconfig_lower_up(ipdevice);
if (lower_down)
__connman_ipconfig_lower_down(ipdevice);
+
+out:
+ g_free(ifname);
}
void __connman_ipconfig_dellink(int index, struct rtnl_link_stats *stats)
{
struct connman_ipdevice *ipdevice;
GList *list;
+ char *ifname;
DBG("index %d", index);
@@ -600,6 +618,7 @@ void __connman_ipconfig_dellink(int index, struct
rtnl_link_stats *stats)
return;
update_stats(ipdevice, stats);
+ ifname = connman_inet_ifname(index);
for (list = g_list_first(ipconfig_list); list;
list = g_list_next(list)) {
@@ -614,11 +633,13 @@ void __connman_ipconfig_dellink(int index, struct
rtnl_link_stats *stats)
continue;
if (ipconfig->ops->lower_down)
- ipconfig->ops->lower_down(ipconfig);
+ ipconfig->ops->lower_down(ipconfig, ifname);
if (ipconfig->ops->down)
- ipconfig->ops->down(ipconfig);
+ ipconfig->ops->down(ipconfig, ifname);
}
+ g_free(ifname);
+
__connman_ipconfig_lower_down(ipdevice);
g_hash_table_remove(ipdevice_hash, GINT_TO_POINTER(index));
@@ -642,6 +663,7 @@ void __connman_ipconfig_newaddr(int index, int family,
const char *label,
struct connman_ipaddress *ipaddress;
enum connman_ipconfig_type type;
GList *list;
+ char *ifname;
DBG("index %d", index);
@@ -672,8 +694,9 @@ void __connman_ipconfig_newaddr(int index, int family,
const char *label,
ipdevice->address_list = g_slist_prepend(ipdevice->address_list,
ipaddress);
+ ifname = connman_inet_ifname(index);
connman_info("%s {add} address %s/%u label %s family %d",
- ipdevice->ifname, address, prefixlen, label, family);
+ ifname, address, prefixlen, label, family);
if (type == CONNMAN_IPCONFIG_TYPE_IPV4)
__connman_ippool_newaddr(index, address, prefixlen);
@@ -686,7 +709,7 @@ void __connman_ipconfig_newaddr(int index, int family,
const char *label,
connman_ipaddress_copy_address(ipdevice->config_ipv6->system,
ipaddress);
else
- return;
+ goto out;
if ((ipdevice->flags & (IFF_RUNNING | IFF_LOWER_UP)) != (IFF_RUNNING |
IFF_LOWER_UP))
return;
@@ -705,8 +728,11 @@ void __connman_ipconfig_newaddr(int index, int family,
const char *label,
continue;
if (ipconfig->ops->ip_bound)
- ipconfig->ops->ip_bound(ipconfig);
+ ipconfig->ops->ip_bound(ipconfig, ifname);
}
+
+out:
+ g_free(ifname);
}
void __connman_ipconfig_deladdr(int index, int family, const char *label,
@@ -716,6 +742,7 @@ void __connman_ipconfig_deladdr(int index, int family,
const char *label,
struct connman_ipaddress *ipaddress;
enum connman_ipconfig_type type;
GList *list;
+ char *ifname;
DBG("index %d", index);
@@ -743,14 +770,15 @@ void __connman_ipconfig_deladdr(int index, int family,
const char *label,
connman_ipaddress_clear(ipaddress);
g_free(ipaddress);
- connman_info("%s {del} address %s/%u label %s", ipdevice->ifname,
+ ifname = connman_inet_ifname(index);
+ connman_info("%s {del} address %s/%u label %s", ifname,
address, prefixlen, label);
if ((ipdevice->flags & (IFF_RUNNING | IFF_LOWER_UP)) != (IFF_RUNNING |
IFF_LOWER_UP))
- return;
+ goto out;
if (g_slist_length(ipdevice->address_list) > 0)
- return;
+ goto out;
for (list = g_list_first(ipconfig_list); list;
list = g_list_next(list)) {
@@ -766,14 +794,18 @@ void __connman_ipconfig_deladdr(int index, int family,
const char *label,
continue;
if (ipconfig->ops->ip_release)
- ipconfig->ops->ip_release(ipconfig);
+ ipconfig->ops->ip_release(ipconfig, ifname);
}
+
+out:
+ g_free(ifname);
}
void __connman_ipconfig_newroute(int index, int family, unsigned char scope,
const char *dst, const char *gateway)
{
struct connman_ipdevice *ipdevice;
+ char *ifname;
DBG("index %d", index);
@@ -781,6 +813,8 @@ void __connman_ipconfig_newroute(int index, int family,
unsigned char scope,
if (!ipdevice)
return;
+ ifname = connman_inet_ifname(index);
+
if (scope == 0 && (g_strcmp0(dst, "0.0.0.0") == 0 ||
g_strcmp0(dst, "::") == 0)) {
GList *config_list;
@@ -809,7 +843,7 @@ void __connman_ipconfig_newroute(int index, int family,
unsigned char scope,
g_strdup(gateway);
}
} else
- return;
+ goto out;
for (config_list = g_list_first(ipconfig_list); config_list;
config_list = g_list_next(config_list))
{
@@ -825,19 +859,22 @@ void __connman_ipconfig_newroute(int index, int family,
unsigned char scope,
continue;
if (ipconfig->ops->route_set)
- ipconfig->ops->route_set(ipconfig);
+ ipconfig->ops->route_set(ipconfig, ifname);
}
}
connman_info("%s {add} route %s gw %s scope %u <%s>",
- ipdevice->ifname, dst, gateway,
- scope, scope2str(scope));
+ ifname, dst, gateway, scope, scope2str(scope));
+
+out:
+ g_free(ifname);
}
void __connman_ipconfig_delroute(int index, int family, unsigned char scope,
const char *dst, const char *gateway)
{
struct connman_ipdevice *ipdevice;
+ char *ifname;
DBG("index %d", index);
@@ -845,6 +882,8 @@ void __connman_ipconfig_delroute(int index, int family,
unsigned char scope,
if (!ipdevice)
return;
+ ifname = connman_inet_ifname(index);
+
if (scope == 0 && (g_strcmp0(dst, "0.0.0.0") == 0 ||
g_strcmp0(dst, "::") == 0)) {
GList *config_list;
@@ -871,7 +910,7 @@ void __connman_ipconfig_delroute(int index, int family,
unsigned char scope,
ipdevice->config_ipv4->system->gateway = NULL;
}
} else
- return;
+ goto out;
for (config_list = g_list_first(ipconfig_list); config_list;
config_list = g_list_next(config_list))
{
@@ -887,13 +926,15 @@ void __connman_ipconfig_delroute(int index, int family,
unsigned char scope,
continue;
if (ipconfig->ops->route_unset)
- ipconfig->ops->route_unset(ipconfig);
+ ipconfig->ops->route_unset(ipconfig, ifname);
}
}
connman_info("%s {del} route %s gw %s scope %u <%s>",
- ipdevice->ifname, dst, gateway,
- scope, scope2str(scope));
+ ifname, dst, gateway, scope, scope2str(scope));
+
+out:
+ g_free(ifname);
}
void __connman_ipconfig_foreach(void (*function) (int index, void *user_data),
@@ -1284,30 +1325,6 @@ int __connman_ipconfig_get_index(struct connman_ipconfig
*ipconfig)
}
/**
- * connman_ipconfig_get_ifname:
- * @ipconfig: ipconfig structure
- *
- * Get interface name
- */
-const char *__connman_ipconfig_get_ifname(struct connman_ipconfig *ipconfig)
-{
- struct connman_ipdevice *ipdevice;
-
- if (!ipconfig)
- return NULL;
-
- if (ipconfig->index < 0)
- return NULL;
-
- ipdevice = g_hash_table_lookup(ipdevice_hash,
- GINT_TO_POINTER(ipconfig->index));
- if (!ipdevice)
- return NULL;
-
- return ipdevice->ifname;
-}
-
-/**
* connman_ipconfig_set_ops:
* @ipconfig: ipconfig structure
* @ops: operation callbacks
@@ -1516,7 +1533,7 @@ static void disable_ipv6(struct connman_ipconfig
*ipconfig)
if (!ipdevice)
return;
- set_ipv6_state(ipdevice->ifname, false);
+ set_ipv6_state_by_index(ipdevice->index, false);
}
static void enable_ipv6(struct connman_ipconfig *ipconfig)
@@ -1531,10 +1548,10 @@ static void enable_ipv6(struct connman_ipconfig
*ipconfig)
return;
if (ipconfig->method == CONNMAN_IPCONFIG_METHOD_AUTO)
- set_ipv6_privacy(ipdevice->ifname,
+ set_ipv6_privacy_by_index(ipdevice->index,
ipconfig->ipv6_privacy_config);
- set_ipv6_state(ipdevice->ifname, true);
+ set_ipv6_state_by_index(ipdevice->index, true);
}
void __connman_ipconfig_enable_ipv6(struct connman_ipconfig *ipconfig)
@@ -1578,6 +1595,7 @@ int __connman_ipconfig_enable(struct connman_ipconfig
*ipconfig)
bool up = false, down = false;
bool lower_up = false, lower_down = false;
enum connman_ipconfig_type type;
+ char *ifname;
DBG("ipconfig %p", ipconfig);
@@ -1642,15 +1660,19 @@ int __connman_ipconfig_enable(struct connman_ipconfig
*ipconfig)
else if ((ipdevice->flags & (IFF_RUNNING | IFF_LOWER_UP)) == 0)
lower_down = true;
+ ifname = connman_inet_ifname(ipconfig->index);
+
if (up && ipconfig->ops->up)
- ipconfig->ops->up(ipconfig);
+ ipconfig->ops->up(ipconfig, ifname);
if (lower_up && ipconfig->ops->lower_up)
- ipconfig->ops->lower_up(ipconfig);
+ ipconfig->ops->lower_up(ipconfig, ifname);
if (lower_down && ipconfig->ops->lower_down)
- ipconfig->ops->lower_down(ipconfig);
+ ipconfig->ops->lower_down(ipconfig, ifname);
if (down && ipconfig->ops->down)
- ipconfig->ops->down(ipconfig);
+ ipconfig->ops->down(ipconfig, ifname);
+
+ g_free(ifname);
return 0;
}
@@ -2151,9 +2173,12 @@ void __connman_ipconfig_append_ethernet(struct
connman_ipconfig *ipconfig,
if (!ipdevice)
return;
- if (ipdevice->ifname)
+ if (ipconfig->index >= 0) {
+ char *ifname = connman_inet_ifname(ipconfig->index);
connman_dbus_dict_append_basic(iter, "Interface",
- DBUS_TYPE_STRING, &ipdevice->ifname);
+ DBUS_TYPE_STRING, &ifname);
+ g_free(ifname);
+ }
if (ipdevice->address)
connman_dbus_dict_append_basic(iter, "Address",
diff --git a/src/ipv6pd.c b/src/ipv6pd.c
index 7146d42..5ecda38 100644
--- a/src/ipv6pd.c
+++ b/src/ipv6pd.c
@@ -289,8 +289,9 @@ static void update_ipconfig(struct connman_service *service,
g_free(default_interface);
default_interface = NULL;
}
- DBG("No IPv6 support for interface %s",
- __connman_ipconfig_get_ifname(ipconfig));
+
+ DBG("No IPv6 support for interface index %d",
+ __connman_ipconfig_get_index(ipconfig));
return;
}
@@ -298,8 +299,8 @@ static void update_ipconfig(struct connman_service *service,
* Did we had PD activated already? If not, then start it.
*/
if (!default_interface) {
- DBG("IPv6 ipconfig %p changed for interface %s", ipconfig,
- __connman_ipconfig_get_ifname(ipconfig));
+ DBG("IPv6 ipconfig %p changed for interface index %d", ipconfig,
+ __connman_ipconfig_get_index(ipconfig));
setup_prefix_delegation(service);
}
diff --git a/src/service.c b/src/service.c
index e4882db..8753247 100644
--- a/src/service.c
+++ b/src/service.c
@@ -6158,11 +6158,12 @@ static int service_register(struct connman_service
*service)
return 0;
}
-static void service_up(struct connman_ipconfig *ipconfig)
+static void service_up(struct connman_ipconfig *ipconfig,
+ const char *ifname)
{
struct connman_service *service = __connman_ipconfig_get_data(ipconfig);
- DBG("%s up", __connman_ipconfig_get_ifname(ipconfig));
+ DBG("%s up", ifname);
link_changed(service);
@@ -6170,25 +6171,28 @@ static void service_up(struct connman_ipconfig
*ipconfig)
service->stats_roaming.valid = false;
}
-static void service_down(struct connman_ipconfig *ipconfig)
+static void service_down(struct connman_ipconfig *ipconfig,
+ const char *ifname)
{
- DBG("%s down", __connman_ipconfig_get_ifname(ipconfig));
+ DBG("%s down", ifname);
}
-static void service_lower_up(struct connman_ipconfig *ipconfig)
+static void service_lower_up(struct connman_ipconfig *ipconfig,
+ const char *ifname)
{
struct connman_service *service = __connman_ipconfig_get_data(ipconfig);
- DBG("%s lower up", __connman_ipconfig_get_ifname(ipconfig));
+ DBG("%s lower up", ifname);
stats_start(service);
}
-static void service_lower_down(struct connman_ipconfig *ipconfig)
+static void service_lower_down(struct connman_ipconfig *ipconfig,
+ const char *ifname)
{
struct connman_service *service = __connman_ipconfig_get_data(ipconfig);
- DBG("%s lower down", __connman_ipconfig_get_ifname(ipconfig));
+ DBG("%s lower down", ifname);
if (!is_idle_state(service, service->state_ipv4))
__connman_ipconfig_disable(service->ipconfig_ipv4);
@@ -6200,13 +6204,14 @@ static void service_lower_down(struct connman_ipconfig
*ipconfig)
service_save(service);
}
-static void service_ip_bound(struct connman_ipconfig *ipconfig)
+static void service_ip_bound(struct connman_ipconfig *ipconfig,
+ const char *ifname)
{
struct connman_service *service = __connman_ipconfig_get_data(ipconfig);
enum connman_ipconfig_method method = CONNMAN_IPCONFIG_METHOD_UNKNOWN;
enum connman_ipconfig_type type = CONNMAN_IPCONFIG_TYPE_UNKNOWN;
- DBG("%s ip bound", __connman_ipconfig_get_ifname(ipconfig));
+ DBG("%s ip bound", ifname);
type = __connman_ipconfig_get_config_type(ipconfig);
method = __connman_ipconfig_get_method(ipconfig);
@@ -6223,13 +6228,14 @@ static void service_ip_bound(struct connman_ipconfig
*ipconfig)
settings_changed(service, ipconfig);
}
-static void service_ip_release(struct connman_ipconfig *ipconfig)
+static void service_ip_release(struct connman_ipconfig *ipconfig,
+ const char *ifname)
{
struct connman_service *service = __connman_ipconfig_get_data(ipconfig);
enum connman_ipconfig_method method = CONNMAN_IPCONFIG_METHOD_UNKNOWN;
enum connman_ipconfig_type type = CONNMAN_IPCONFIG_TYPE_UNKNOWN;
- DBG("%s ip release", __connman_ipconfig_get_ifname(ipconfig));
+ DBG("%s ip release", ifname);
type = __connman_ipconfig_get_config_type(ipconfig);
method = __connman_ipconfig_get_method(ipconfig);
@@ -6252,11 +6258,12 @@ static void service_ip_release(struct connman_ipconfig
*ipconfig)
settings_changed(service, ipconfig);
}
-static void service_route_changed(struct connman_ipconfig *ipconfig)
+static void service_route_changed(struct connman_ipconfig *ipconfig,
+ const char *ifname)
{
struct connman_service *service = __connman_ipconfig_get_data(ipconfig);
- DBG("%s route changed", __connman_ipconfig_get_ifname(ipconfig));
+ DBG("%s route changed", ifname);
settings_changed(service, ipconfig);
}
--
1.7.11.7
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman