[PATCH 09/13] Have DHCP release the lease on ifdown, rather than just exiting

Matthew W. S. Bell matthew at bells23.org.uk
Sat Apr 25 18:18:34 UTC 2009


From: Matthew W. S. Bell <mentor at engelbert.(none)>


Signed-off-by: Matthew W. S. Bell <matthew at bells23.org.uk>
---
 src/netconf/ifaces/dhcp/dhcp3_client.py |   12 ++++++++++--
 src/netconf/ifaces/eni/inet/dhcp.py     |    2 +-
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/netconf/ifaces/dhcp/dhcp3_client.py b/src/netconf/ifaces/dhcp/dhcp3_client.py
index cdb8695..c25168d 100644
--- a/src/netconf/ifaces/dhcp/dhcp3_client.py
+++ b/src/netconf/ifaces/dhcp/dhcp3_client.py
@@ -361,14 +361,22 @@ class dhclient3Proxy(logger.Mixin):
 
     @public
     def stop(self, cmd, manip, cb_result, verbose):
+        self._close(cmd, manip, cb_result, verbose, '-x')
+
+    @public
+    def release(self, cmd, manip, cb_result, verbose):
+        self._close(cmd, manip, cb_result, verbose, '-r')
+
+    @private
+    def _close(self, cmd, manip, cb_result, verbose, args):
         self._iface = cmd.iface
         self._manip = manip
 
         argv = dhclient3Proxy._DHCLIENT_COMMAND % \
                 { 'iface' : self._iface
-                 , 'args' : '-x'
+                 , 'args' : args
                 }
-        self._log.debug('starting dhclient -x: ' + argv)
+        self._log.debug('starting dhclient: ' + argv)
 
         proc = subprocess.Popen(argv.split(), stdout=subprocess.PIPE,
                                 stderr=subprocess.PIPE, stdin=subprocess.PIPE)
diff --git a/src/netconf/ifaces/eni/inet/dhcp.py b/src/netconf/ifaces/eni/inet/dhcp.py
index e6de5c3..3772791 100644
--- a/src/netconf/ifaces/eni/inet/dhcp.py
+++ b/src/netconf/ifaces/eni/inet/dhcp.py
@@ -64,5 +64,5 @@ class EniInetDhcpMethod(EniBaseMethod):
                 self._log.debug('got STOP or RELEASE, returning success '
                                 'to continue queue...')
                 cb_result(SuccessResult('ok'))
-        dhclient3Proxy(self._core).stop(cmd, self._manip, _handled_stop,
+        dhclient3Proxy(self._core).release(cmd, self._manip, _handled_stop,
                                         verbose)
-- 
1.6.2.4




More information about the netconf-devel mailing list