Author: jhb
Date: Fri Aug 17 15:53:43 2012
New Revision: 239356
URL: http://svn.freebsd.org/changeset/base/239356

Log:
  Fix dhclient to properly exit and teardown the configured lease when
  link is lost.  devd will start a new dhclient instance when link is
  restored.
  
  PR:           bin/166656
  Submitted by: Peter Jeremy (mostly)
  Reviewed by:  brooks (earlier version from Peter)
  MFC after:    1 month

Modified:
  head/sbin/dhclient/dhclient.c

Modified: head/sbin/dhclient/dhclient.c
==============================================================================
--- head/sbin/dhclient/dhclient.c       Fri Aug 17 14:22:56 2012        
(r239355)
+++ head/sbin/dhclient/dhclient.c       Fri Aug 17 15:53:43 2012        
(r239356)
@@ -278,6 +278,11 @@ routehandler(struct protocol *p)
                            ifi->name);
                        goto die;
                }
+               if (!interface_link_status(ifi->name)) {
+                       warning("Interface %s is down, dhclient exiting",
+                           ifi->name);
+                       goto die;
+               }
                break;
        case RTM_IFANNOUNCE:
                ifan = (struct if_announcemsghdr *)rtm;
@@ -316,6 +321,8 @@ routehandler(struct protocol *p)
 
 die:
        script_init("FAIL", NULL);
+       if (ifi->client->active)
+               script_write_params("old_", ifi->client->active);
        if (ifi->client->alias)
                script_write_params("alias_", ifi->client->alias);
        script_go();
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to