dhcp->ipv4ll_client);
#if defined TIZEN_EXT
+ if (dhcp->network &&
+ connman_network_get_bool(dhcp->network, "WiFi.RoamingDHCP")) {
+ connman_network_set_bool(dhcp->network, "WiFi.RoamingDHCP", false);
+ __connman_network_enable_ipconfig(dhcp->network, dhcp->ipconfig);
+
+ return;
+ }
+
if (connman_setting_get_bool("EnableAutoIp") == false) {
DBG("link-local address autoconfiguration is disabled.");
if (dhcp->network)
__connman_service_notify_ipv4_configuration(service);
}
+#if defined TIZEN_EXT
+ if (connman_network_get_bool(dhcp->network, "WiFi.RoamingDHCP")) {
+
+ if (ip_change)
+ connman_service_notify_reconnection(
+ connman_service_lookup_from_network(dhcp->network));
+
+ connman_network_set_bool(dhcp->network, "WiFi.RoamingDHCP", false);
+ }
+#endif
+
if (ip_change) {
__connman_ipconfig_set_local(dhcp->ipconfig, address);
__connman_ipconfig_set_prefixlen(dhcp->ipconfig, prefixlen);
dhcp->user_data = user_data;
#if defined TIZEN_EXT
- DBG("Start DHCP with DHCPDISCOVER request");
+ if (connman_network_get_bool(network, "WiFi.RoamingDHCP")) {
+ const char *last_addr = __connman_ipconfig_get_dhcp_address(ipconfig);
- return g_dhcp_client_start(dhcp->dhcp_client, NULL);
+ DBG("Start DHCP with last address request");
+ return g_dhcp_client_start(dhcp->dhcp_client, last_addr);
+ } else {
+ DBG("Start DHCP with DHCPDISCOVER request");
+ return g_dhcp_client_start(dhcp->dhcp_client, NULL);
+ }
#else
return g_dhcp_client_start(dhcp->dhcp_client, last_addr);
#endif