[svn] commit: r1916 - in /branches/trac183/src/lib: cc/session.cc cc/session.h config/tests/fake_session.cc config/tests/fake_session.h
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue May 25 12:28:18 UTC 2010
Author: jelte
Date: Tue May 25 12:28:17 2010
New Revision: 1916
Log:
add (optional) socket_file argument to isc::cc::Session::establish(), if NULL (defulat), it uses env var BIND10_MSGQ_SOCKET_FILE, if env var not set, it'll use configure-time default (from session_config.h)
Modified:
branches/trac183/src/lib/cc/session.cc
branches/trac183/src/lib/cc/session.h
branches/trac183/src/lib/config/tests/fake_session.cc
branches/trac183/src/lib/config/tests/fake_session.h
Modified: branches/trac183/src/lib/cc/session.cc
==============================================================================
--- branches/trac183/src/lib/cc/session.cc (original)
+++ branches/trac183/src/lib/cc/session.cc Tue May 25 12:28:17 2010
@@ -57,7 +57,7 @@
public:
SessionImpl() : sequence_(-1) { queue_ = Element::createFromString("[]"); }
virtual ~SessionImpl() {}
- virtual void establish() = 0;
+ virtual void establish(const char* socket_file = NULL) = 0;
virtual int getSocket() = 0;
virtual void disconnect() = 0;
virtual void writeData(const void* data, size_t datalen) = 0;
@@ -76,7 +76,7 @@
ASIOSession(io_service& io_service) :
io_service_(io_service), socket_(io_service_), data_length_(0)
{}
- virtual void establish();
+ virtual void establish(const char* socket_file = NULL);
virtual void disconnect();
virtual int getSocket() { return (socket_.native()); }
virtual void writeData(const void* data, size_t datalen);
@@ -95,11 +95,19 @@
boost::system::error_code error_;
};
-void
-ASIOSession::establish() {
- const char *socket_file = getenv("BIND10_MSGQ_SOCKET_FILE");
+
+
+void
+ASIOSession::establish(const char* socket_file) {
+ if (!socket_file) {
+ socket_file = getenv("BIND10_MSGQ_SOCKET_FILE");
+ }
if (!socket_file) {
socket_file = BIND10_MSGQ_SOCKET_FILE;
+ }
+ socket_.connect(boost::asio::local::stream_protocol::endpoint(socket_file), error_);
+ if (error_) {
+ isc_throw(SessionError, "Unable to connect to message queue.");
}
socket_.connect(boost::asio::local::stream_protocol::endpoint(socket_file), error_);
if (error_) {
@@ -182,7 +190,7 @@
SocketSession() : sock_(-1) {}
virtual ~SocketSession() { disconnect(); }
virtual int getSocket() { return (sock_); }
- void establish();
+ void establish(const char* socket_file = NULL);
virtual void disconnect()
{
if (sock_ >= 0) {
@@ -217,7 +225,7 @@
}
void
-SocketSession::establish() {
+SocketSession::establish(const char* socket_file) {
int s;
struct sockaddr_un sun;
@@ -225,8 +233,10 @@
if (s < 0) {
isc_throw(SessionError, "socket() failed");
}
-
- const char *socket_file = getenv("BIND10_MSGQ_SOCKET_FILE");
+
+ if (!socket_file) {
+ socket_file = getenv("BIND10_MSGQ_SOCKET_FILE");
+ }
if (!socket_file) {
socket_file = BIND10_MSGQ_SOCKET_FILE;
}
@@ -296,8 +306,8 @@
}
void
-Session::establish() {
- impl_->establish();
+Session::establish(const char* socket_file) {
+ impl_->establish(socket_file);
// once established, encapsulate the implementation object so that we
// can safely release the internal resource when exception happens
Modified: branches/trac183/src/lib/cc/session.h
==============================================================================
--- branches/trac183/src/lib/cc/session.h (original)
+++ branches/trac183/src/lib/cc/session.h Tue May 25 12:28:17 2010
@@ -60,7 +60,7 @@
void startRead(boost::function<void()> read_callback);
- void establish();
+ void establish(const char* socket_file = NULL);
void disconnect();
void sendmsg(isc::data::ElementPtr& msg);
void sendmsg(isc::data::ElementPtr& env,
Modified: branches/trac183/src/lib/config/tests/fake_session.cc
==============================================================================
--- branches/trac183/src/lib/config/tests/fake_session.cc (original)
+++ branches/trac183/src/lib/config/tests/fake_session.cc Tue May 25 12:28:17 2010
@@ -172,7 +172,7 @@
}
void
-Session::establish() {
+Session::establish(const char* socket_file) {
}
//
Modified: branches/trac183/src/lib/config/tests/fake_session.h
==============================================================================
--- branches/trac183/src/lib/config/tests/fake_session.h (original)
+++ branches/trac183/src/lib/config/tests/fake_session.h Tue May 25 12:28:17 2010
@@ -73,7 +73,7 @@
void startRead(boost::function<void()> read_callback);
- void establish();
+ void establish(const char* socket_file = NULL);
bool connect();
void disconnect();
void sendmsg(isc::data::ElementPtr& msg);
More information about the bind10-changes
mailing list