[svn] commit: r1933 - in /branches/trac183/src: bin/bind10/bind10.py.in bin/msgq/msgq.py.in bin/msgq/tests/msgq_test.py lib/cc/Makefile.am lib/cc/session.cc lib/cc/session_unittests.cc

BIND 10 source code commits bind10-changes at lists.isc.org
Wed May 26 09:48:08 UTC 2010


Author: jelte
Date: Wed May 26 09:48:08 2010
New Revision: 1933

Log:
some changes inspired by jinmei's review

Added:
    branches/trac183/src/lib/cc/session_unittests.cc
Modified:
    branches/trac183/src/bin/bind10/bind10.py.in
    branches/trac183/src/bin/msgq/msgq.py.in
    branches/trac183/src/bin/msgq/tests/msgq_test.py
    branches/trac183/src/lib/cc/Makefile.am
    branches/trac183/src/lib/cc/session.cc

Modified: branches/trac183/src/bin/bind10/bind10.py.in
==============================================================================
--- branches/trac183/src/bin/bind10/bind10.py.in (original)
+++ branches/trac183/src/bin/bind10/bind10.py.in Wed May 26 09:48:08 2010
@@ -175,9 +175,6 @@
         self.processes = {}
         self.dead_processes = {}
         self.runnable = False
-
-        if self.msgq_socket_file is not None:
-            os.environ['BIND10_MSGQ_SOCKET_FILE'] = str(self.msgq_socket_file)
 
     def config_handler(self, new_config):
         if self.verbose:

Modified: branches/trac183/src/bin/msgq/msgq.py.in
==============================================================================
--- branches/trac183/src/bin/msgq/msgq.py.in (original)
+++ branches/trac183/src/bin/msgq/msgq.py.in Wed May 26 09:48:08 2010
@@ -140,8 +140,6 @@
     def setup_listener(self):
         """Set up the listener socket.  Internal function."""
         self.listen_socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
-        #self.listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
-        #self.listen_socket.bind(("127.0.0.1", self.c_channel_port))
         
         if os.path.exists(self.socket_file):
             os.remove(self.socket_file)

Modified: branches/trac183/src/bin/msgq/tests/msgq_test.py
==============================================================================
--- branches/trac183/src/bin/msgq/tests/msgq_test.py (original)
+++ branches/trac183/src/bin/msgq/tests/msgq_test.py Wed May 26 09:48:08 2010
@@ -78,21 +78,28 @@
         self.assertFalse(os.path.exists("./my_socket_file"))
 
     def test_open_socket_default(self):
+        env_var = None
         if "BIND10_MSGQ_SOCKET_FILE" in os.environ:
+            env_var = os.environ["BIND10_MSGQ_SOCKET_FILE"]
             del os.environ["BIND10_MSGQ_SOCKET_FILE"]
         socket_file = MsgQ.SOCKET_FILE
         self.assertFalse(os.path.exists(socket_file))
         msgq = MsgQ();
-        msgq.setup()
-        self.assertTrue(os.path.exists(socket_file))
-        msgq.shutdown();
-        self.assertFalse(os.path.exists(socket_file))
-        pass
+        try:
+            msgq.setup()
+            self.assertTrue(os.path.exists(socket_file))
+            msgq.shutdown();
+            self.assertFalse(os.path.exists(socket_file))
+        except socket.error:
+            # ok, the install path doesn't exist at all,
+            # so we can't check any further
+            pass
+        if env_var is not None:
+            os.environ["BIND10_MSGQ_SOCKET_FILE"] = env_var
 
     def test_open_socket_bad(self):
         msgq = MsgQ("/does/not/exist")
         self.assertRaises(socket.error, msgq.setup)
-        pass
 
 if __name__ == '__main__':
     unittest.main()

Modified: branches/trac183/src/lib/cc/Makefile.am
==============================================================================
--- branches/trac183/src/lib/cc/Makefile.am (original)
+++ branches/trac183/src/lib/cc/Makefile.am Wed May 26 09:48:08 2010
@@ -13,12 +13,18 @@
 TESTS =
 if HAVE_GTEST
 TESTS += run_unittests
-run_unittests_SOURCES = data_unittests.cc run_unittests.cc
+run_unittests_SOURCES = data_unittests.cc session_unittests.cc run_unittests.cc
 run_unittests_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_INCLUDES)
 run_unittests_LDFLAGS = $(AM_LDFLAGS) $(GTEST_LDFLAGS)
 run_unittests_LDADD = libcc.a $(GTEST_LDADD)
 run_unittests_LDADD +=  $(top_builddir)/src/lib/dns/.libs/libdns.a
 run_unittests_LDADD +=  $(top_builddir)/src/lib/exceptions/.libs/libexceptions.a
+
+if HAVE_BOOST_SYSTEM
+run_unittests_LDFLAGS += $(AM_LDFLAGS) $(BOOST_LDFLAGS)
+run_unittests_LDADD += $(BOOST_SYSTEM_LIB)
+endif
+
 endif
 
 noinst_PROGRAMS = $(TESTS)

Modified: branches/trac183/src/lib/cc/session.cc
==============================================================================
--- branches/trac183/src/lib/cc/session.cc (original)
+++ branches/trac183/src/lib/cc/session.cc Wed May 26 09:48:08 2010
@@ -107,7 +107,11 @@
     if (!socket_file) {
         socket_file = BIND10_MSGQ_SOCKET_FILE;
     }
-    socket_.connect(boost::asio::local::stream_protocol::endpoint(socket_file), error_);
+    try {
+        socket_.connect(boost::asio::local::stream_protocol::endpoint(socket_file), error_);
+    } catch (boost::system::system_error se) {
+        isc_throw(SessionError, se.what());
+    }
     if (error_) {
         isc_throw(SessionError, "Unable to connect to message queue.");
     }
@@ -227,6 +231,9 @@
     int s;
     struct sockaddr_un sun;
 
+#ifdef HAVE_SUN_LEN
+    sun.sun_len = sizeof(struct sockaddr_un);
+#endif
     s = socket(AF_UNIX, SOCK_STREAM, IPPROTO_TCP);
     if (s < 0) {
         isc_throw(SessionError, "socket() failed");
@@ -239,9 +246,12 @@
         socket_file = BIND10_MSGQ_SOCKET_FILE;
     }
 
+/*    if (strlen(socket_file) >= sizeof(sun.sun_path)) {
+        isc_throw(SessionError, "Unable to connect to message queue; socket file path too long");
+    }
+*/
     sun.sun_family = AF_UNIX;
     strncpy(sun.sun_path, socket_file, sizeof(sun.sun_path) - 1);
-    sun.sun_path[sizeof(sun.sun_path) - 1] = '\0';
 
     if (connect(s, (struct sockaddr *)&sun, sizeof(sun)) < 0) {
         close(s);




More information about the bind10-changes mailing list