aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIrfan Sheriff <isheriff@google.com>2011-07-15 15:43:21 -0700
committerIrfan Sheriff <isheriff@google.com>2011-07-15 15:43:21 -0700
commit0c4a89bb5e3205e47085b93ffec210778e474508 (patch)
tree67e0e7c1f16549a08521439225dae6d677e0c178
parent49b71a9ee5f83c49125fd6aff49701524be7a618 (diff)
downloadexternal_dhcpcd-0c4a89bb5e3205e47085b93ffec210778e474508.zip
external_dhcpcd-0c4a89bb5e3205e47085b93ffec210778e474508.tar.gz
external_dhcpcd-0c4a89bb5e3205e47085b93ffec210778e474508.tar.bz2
Fix dhcp renew behavior
We use the -n option to renew the ip address. The current behavior of the client is to reset and initialize all available interfaces sending traffic on them. Change the behavior to do a renew alone Bug: 4987402 Change-Id: I3004feddf77aea248a9c749333d5c0d5ec9d4d3e
-rw-r--r--dhcpcd.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/dhcpcd.c b/dhcpcd.c
index e984ceb..791f513 100644
--- a/dhcpcd.c
+++ b/dhcpcd.c
@@ -1474,6 +1474,12 @@ handle_signal(_unused void *arg)
syslog(LOG_INFO, "received SIGTERM, stopping");
break;
case SIGALRM:
+#ifdef ANDROID
+ syslog(LOG_INFO, "received SIGALRM, renewing");
+ for (ifp = ifaces; ifp; ifp = ifp->next) {
+ start_renew(ifp);
+ }
+#else
syslog(LOG_INFO, "received SIGALRM, rebinding");
for (i = 0; i < ifac; i++)
free(ifav[i]);
@@ -1495,6 +1501,7 @@ handle_signal(_unused void *arg)
options = ifo->options;
free_options(ifo);
reconf_reboot(1, 0, NULL, 0);
+#endif
return;
case SIGHUP:
syslog(LOG_INFO, "received SIGHUP, releasing");