Browse Source

[1828] Cleanup listen socket in DDNSServer.shutdown_cleanup()

Mukund Sivaraman 13 years ago
parent
commit
3dd46b7913
2 changed files with 6 additions and 1 deletions
  1. 1 0
      src/bin/ddns/ddns.py.in
  2. 5 1
      src/bin/ddns/tests/ddns_test.py

+ 1 - 0
src/bin/ddns/ddns.py.in

@@ -154,6 +154,7 @@ class DDNSServer:
         this module is stopping.
         '''
         self._cc.send_stopping()
+        self._listen_socket.close()
 
     def accept(self):
         """

+ 5 - 1
src/bin/ddns/tests/ddns_test.py

@@ -37,6 +37,8 @@ class FakeSocket:
         return "fake_unix_socket"
     def accept(self):
         return FakeSocket(self.__fileno + 1)
+    def close(self):
+        return
 
 class FakeSessionReceiver:
     """
@@ -111,6 +113,8 @@ class TestDDNSServer(unittest.TestCase):
         self.__select_answer = None
         self.__select_exception = None
         self.__hook_called = False
+        # Because we overwrite the _listen_socket, close any existing
+        # socket object.
         if self.ddns_server._listen_socket is not None:
             self.ddns_server._listen_socket.close()
         self.ddns_server._listen_socket = FakeSocket(2)
@@ -141,7 +145,7 @@ class TestDDNSServer(unittest.TestCase):
         self.assertIsNone(self.__hook_called)
         # Now make sure the clear_socket really works
         ddns.clear_socket()
-        ddnss._listen_socket.close()
+        ddnss.shutdown_cleanup()
         self.assertFalse(os.path.exists(ddns.SOCKET_FILE))
 
     def test_config_handler(self):