Route changes should not trigger ip_bound or ip_release callbacks
in service.c as that can cause too early transition into IPv6 ready state.
The ip_bound (in __connman_ipconfig_newaddr()) and ip_release (in
__connman_ipconfig_deladdr()) are enough to trigger a transition
in IPv6 state.
This also prevents too many notifier calls in session as we only
notify session when address changes.
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);
};
struct connman_ipconfig *connman_ipconfig_create(int index,
if (ipconfig->ops == NULL)
continue;
- if (ipconfig->ops->ip_bound)
- ipconfig->ops->ip_bound(ipconfig);
+ if (ipconfig->ops->route_set)
+ ipconfig->ops->route_set(ipconfig);
}
}
if (ipconfig->ops == NULL)
continue;
- if (ipconfig->ops->ip_release)
- ipconfig->ops->ip_release(ipconfig);
+ if (ipconfig->ops->route_unset)
+ ipconfig->ops->route_unset(ipconfig);
}
}