Re: Small diff to make dhclient(8) go to background immediately
On 2008-05-19, Cesare Gargano [EMAIL PROTECTED] wrote: On 19/05/08 15:50 +0200, Cesare Gargano wrote: On 18/05/08 17:20 +0200, Jona Joachim wrote: I very much appreciate the work of reyk@ on dhclient to make it renew the lease when the link is lost. However it might happen that you don't have a link at the moment where you launch dhclient but you know that you might get a link afterwards. This is true when you launch your laptop somewhere where you have wifi connectivity but unfortunately you're in a spot where you don't currently receive it. If you specify 'dhcp' in hostname.if you will have to wait until dhclient times out or hit Ctrl-C at startup. This tiny patch adds an option to dhclient to tell it to just go into background and wait until you get a link. I would appreciate any comments. Thanks! Index: dhclient.c (snip diff) Ehi! Your diff is already there! cat /etc/dhclient.conf link_timeout 0; is link-timeout Ehm! Enjoy! You're right, I guess I was making things overly complicated...
Re: Small diff to make dhclient(8) go to background immediately
On 2008-05-19, Cesare Gargano [EMAIL PROTECTED] wrote: On 19/05/08 15:50 +0200, Cesare Gargano wrote: On 18/05/08 17:20 +0200, Jona Joachim wrote: I very much appreciate the work of reyk@ on dhclient to make it renew the lease when the link is lost. However it might happen that you don't have a link at the moment where you launch dhclient but you know that you might get a link afterwards. This is true when you launch your laptop somewhere where you have wifi connectivity but unfortunately you're in a spot where you don't currently receive it. If you specify 'dhcp' in hostname.if you will have to wait until dhclient times out or hit Ctrl-C at startup. This tiny patch adds an option to dhclient to tell it to just go into background and wait until you get a link. I would appreciate any comments. Thanks! Index: dhclient.c (snip diff) Ehi! Your diff is already there! cat /etc/dhclient.conf link_timeout 0; is link-timeout Ehm! Enjoy! You're right, I guess I was making things overly complicated.
Re: Small diff to make dhclient(8) go to background immediately
On 19/05/08 15:50 +0200, Cesare Gargano wrote: On 18/05/08 17:20 +0200, Jona Joachim wrote: I very much appreciate the work of reyk@ on dhclient to make it renew the lease when the link is lost. However it might happen that you don't have a link at the moment where you launch dhclient but you know that you might get a link afterwards. This is true when you launch your laptop somewhere where you have wifi connectivity but unfortunately you're in a spot where you don't currently receive it. If you specify 'dhcp' in hostname.if you will have to wait until dhclient times out or hit Ctrl-C at startup. This tiny patch adds an option to dhclient to tell it to just go into background and wait until you get a link. I would appreciate any comments. Thanks! Index: dhclient.c === RCS file: /cvs/src/sbin/dhclient/dhclient.c,v retrieving revision 1.118 diff -u -r1.118 dhclient.c --- dhclient.c 9 May 2008 05:19:14 - 1.118 +++ dhclient.c 18 May 2008 15:11:53 - @@ -253,7 +253,7 @@ int main(int argc, char *argv[]) { - int ch, fd, quiet = 0, i = 0, pipe_fd[2]; + int ch, fd, quiet = 0, background = 0, i = 0, pipe_fd[2]; extern char *__progname; struct passwd *pw; @@ -261,8 +261,11 @@ openlog(__progname, LOG_PID | LOG_NDELAY, DHCPD_LOG_FACILITY); setlogmask(LOG_UPTO(LOG_INFO)); - while ((ch = getopt(argc, argv, c:dl:qu)) != -1) + while ((ch = getopt(argc, argv, bc:dl:qu)) != -1) switch (ch) { + case 'b': + background = 1; + break; case 'c': path_dhclient_conf = optarg; break; @@ -319,6 +322,9 @@ read_client_conf(); + if (background) + goto dispatch; + if (!(ifi-linkstat = interface_link_status(ifi-name))) { fprintf(stderr, %s: no link ..., ifi-name); if (config-link_timeout == 0) { @@ -409,7 +415,7 @@ { extern char *__progname; - fprintf(stderr, usage: %s [-dqu] [-c file] [-l file] interface\n, + fprintf(stderr, usage: %s [-bdqu] [-c file] [-l file] interface\n, __progname); exit(1); } Ehi! Your diff is already there! cat /etc/dhclient.conf link_timeout 0; is link-timeout Ehm! Enjoy! It works!
Re: Small diff to make dhclient(8) go to background immediately
On 18/05/08 17:20 +0200, Jona Joachim wrote: I very much appreciate the work of reyk@ on dhclient to make it renew the lease when the link is lost. However it might happen that you don't have a link at the moment where you launch dhclient but you know that you might get a link afterwards. This is true when you launch your laptop somewhere where you have wifi connectivity but unfortunately you're in a spot where you don't currently receive it. If you specify 'dhcp' in hostname.if you will have to wait until dhclient times out or hit Ctrl-C at startup. This tiny patch adds an option to dhclient to tell it to just go into background and wait until you get a link. I would appreciate any comments. Thanks! Index: dhclient.c === RCS file: /cvs/src/sbin/dhclient/dhclient.c,v retrieving revision 1.118 diff -u -r1.118 dhclient.c --- dhclient.c 9 May 2008 05:19:14 - 1.118 +++ dhclient.c 18 May 2008 15:11:53 - @@ -253,7 +253,7 @@ int main(int argc, char *argv[]) { - int ch, fd, quiet = 0, i = 0, pipe_fd[2]; + int ch, fd, quiet = 0, background = 0, i = 0, pipe_fd[2]; extern char *__progname; struct passwd *pw; @@ -261,8 +261,11 @@ openlog(__progname, LOG_PID | LOG_NDELAY, DHCPD_LOG_FACILITY); setlogmask(LOG_UPTO(LOG_INFO)); - while ((ch = getopt(argc, argv, c:dl:qu)) != -1) + while ((ch = getopt(argc, argv, bc:dl:qu)) != -1) switch (ch) { + case 'b': + background = 1; + break; case 'c': path_dhclient_conf = optarg; break; @@ -319,6 +322,9 @@ read_client_conf(); + if (background) + goto dispatch; + if (!(ifi-linkstat = interface_link_status(ifi-name))) { fprintf(stderr, %s: no link ..., ifi-name); if (config-link_timeout == 0) { @@ -409,7 +415,7 @@ { extern char *__progname; - fprintf(stderr, usage: %s [-dqu] [-c file] [-l file] interface\n, + fprintf(stderr, usage: %s [-bdqu] [-c file] [-l file] interface\n, __progname); exit(1); } Ehi! Your diff is already there! cat /etc/dhclient.conf link_timeout 0; It works!