diff options
author | taesub kim <taesub.kim@samsung.com> | 2017-03-28 16:16:21 +0900 |
---|---|---|
committer | taesub kim <taesub.kim@samsung.com> | 2017-03-28 17:15:11 +0900 |
commit | e4d49d1aa74f8682807bf57a969795eb1bae1862 (patch) | |
tree | 34d98ae84e837a7282998c70327bc0f61c8b0de0 /gdhcp/client.c | |
parent | bacbf3b3464c00424ded04da1712e554c09c4625 (diff) | |
download | connman-e4d49d1aa74f8682807bf57a969795eb1bae1862.tar.gz connman-e4d49d1aa74f8682807bf57a969795eb1bae1862.tar.bz2 connman-e4d49d1aa74f8682807bf57a969795eb1bae1862.zip |
Modified the DHCP descover/request timeout and disable DHCP reququest for last address
(DHCP discovery) wlan0 retry timeout=1sec retries=15
(DHCP request) retry timeout=1sec
Change-Id: I28b8f8361dcf2c8cff7f3084c47707f05bc0da64
Signed-off-by: Taesub Kim <taesub.kim@samsung.com>
Diffstat (limited to 'gdhcp/client.c')
-rwxr-xr-x | gdhcp/client.c | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/gdhcp/client.c b/gdhcp/client.c index 9b2de9db..3157632a 100755 --- a/gdhcp/client.c +++ b/gdhcp/client.c @@ -50,9 +50,30 @@ #define DISCOVER_TIMEOUT 5 #define DISCOVER_RETRIES 6 +#if defined TIZEN_EXT +#define REQUEST_TIMEOUT 1 +#else #define REQUEST_TIMEOUT 5 +#endif #define REQUEST_RETRIES 3 +#if defined TIZEN_EXT +#define DISCOVER_TIMEOUT_WIFI 1 +#define DISCOVER_RETRIES_WIFI 10 +static int dhcp_discover_timeout = DISCOVER_TIMEOUT_WIFI; +static int dhcp_discover_max_retry = DISCOVER_RETRIES_WIFI; + +void set_dhcp_discover_timeout(int timeout_value) +{ + dhcp_discover_timeout = timeout_value; +} + +void set_dhcp_discover_retry_count(int retry_count) +{ + dhcp_discover_max_retry = retry_count; +} +#endif + typedef enum _listen_mode { L_NONE, L2, @@ -2688,6 +2709,11 @@ int g_dhcp_client_start(GDHCPClient *dhcp_client, const char *last_address) uint32_t addr; uint64_t rand; +#if defined TIZEN_EXT + int discover_retry = 0; + int timeout = 0; +#endif + remove_timeouts(dhcp_client); if (dhcp_client->type == G_DHCP_IPV6) { @@ -2774,13 +2800,32 @@ int g_dhcp_client_start(GDHCPClient *dhcp_client, const char *last_address) return 0; } +#if defined TIZEN_EXT + if (g_ascii_strncasecmp(dhcp_client->interface, "wlan", 4) + == 0) { + discover_retry = DISCOVER_RETRIES_WIFI; + timeout = DISCOVER_TIMEOUT_WIFI; + } else { + discover_retry = DISCOVER_RETRIES; + timeout = DISCOVER_TIMEOUT; + } + + debug(dhcp_client, "[DHCPC] Discover retry/total : [%d]/[%d] timeout [%d]", + dhcp_client->retry_times, discover_retry, timeout); +#endif + + if (dhcp_client->type == G_DHCP_IPV4LL) { dhcp_client->state = INIT_SELECTING; ipv4ll_start(dhcp_client); return 0; } - if (dhcp_client->retry_times == DISCOVER_RETRIES) { +#if defined TIZEN_EXT + if (dhcp_client->retry_times == discover_retry) { +#else + if (dhcp_client->retry_times == DISCOVER_RETRIES) { +#endif if (dhcp_client->no_lease_cb) dhcp_client->no_lease_cb(dhcp_client, dhcp_client->no_lease_data); @@ -2823,7 +2868,11 @@ int g_dhcp_client_start(GDHCPClient *dhcp_client, const char *last_address) dhcp_client->timeout = g_timeout_add_seconds_full( G_PRIORITY_HIGH, +#if defined TIZEN_EXT + timeout, +#else REQUEST_TIMEOUT, +#endif reboot_timeout, dhcp_client, NULL); @@ -2832,7 +2881,11 @@ int g_dhcp_client_start(GDHCPClient *dhcp_client, const char *last_address) send_discover(dhcp_client, addr); dhcp_client->timeout = g_timeout_add_seconds_full(G_PRIORITY_HIGH, +#if defined TIZEN_EXT + timeout, +#else DISCOVER_TIMEOUT, +#endif discover_timeout, dhcp_client, NULL); |