[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