#define RATE_LIMIT_INTERVAL 60 /* delay between successive attempts */
+#if defined TIZEN_EXT
+#define DHCP_SUCCESS "DHCP_SUCCESS"
+#define DHCP_FAIL "DHCP_FAIL"
+#define DHCP_STARTED "DHCP_STARTED"
+#endif
+
struct connman_dhcp {
struct connman_ipconfig *ipconfig;
struct connman_network *network;
#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);
+ __connman_network_notify_dhcp_changed(DHCP_FAIL,
+ g_dhcp_client_get_interface(dhcp_client));
return;
}
if (connman_setting_get_bool("EnableAutoIp") == false) {
DBG("link-local address autoconfiguration is disabled.");
- if (dhcp->network)
- __connman_network_disconnect(dhcp->network);
+
+ if (dhcp->network) {
+ DBG("[DHCP-C] auto ip is not used, set dhcp-fail error and disconnect");
+ __connman_network_notify_dhcp_changed(DHCP_FAIL,
+ g_dhcp_client_get_interface(dhcp_client));
+ connman_network_set_error(dhcp->network, CONNMAN_NETWORK_ERROR_DHCP_FAIL);
+ }
return;
}
#endif
#if defined TIZEN_EXT
__connman_ipconfig_set_dhcp_lease_duration(dhcp->ipconfig, dhcp_lease_duration);
+ __connman_network_notify_dhcp_changed(DHCP_SUCCESS,
+ g_dhcp_client_get_interface(dhcp_client));
#endif
/*
if (connman_network_get_bool(dhcp->network, "WiFi.RoamingDHCP")) {
if (ip_change)
- connman_service_notify_reconnection(
+ connman_service_notify_reconnection_roaming(
connman_service_lookup_from_network(dhcp->network));
connman_network_set_bool(dhcp->network, "WiFi.RoamingDHCP", false);
g_free(address);
g_free(netmask);
+
+#if defined TIZEN_EXT
+ __connman_network_notify_dhcp_changed(DHCP_FAIL,
+ g_dhcp_client_get_interface(ipv4ll_client));
+#endif
}
static int dhcp_initialize(struct connman_dhcp *dhcp)
dhcp->user_data = user_data;
#if defined TIZEN_EXT
- if (connman_network_get_bool(network, "WiFi.RoamingDHCP")) {
+ __connman_network_notify_dhcp_changed(DHCP_STARTED,
+ g_dhcp_client_get_interface(dhcp->dhcp_client));
+
+ if (network && connman_network_get_bool(network, "WiFi.RoamingDHCP")) {
const char *last_addr = __connman_ipconfig_get_dhcp_address(ipconfig);
DBG("Start DHCP with last address request");