diff options
author | Andrew Stitcher <astitcher@apache.org> | 2009-10-12 18:03:30 +0000 |
---|---|---|
committer | Andrew Stitcher <astitcher@apache.org> | 2009-10-12 18:03:30 +0000 |
commit | 0802d37628e75297bc3a59fb323719183fb13385 (patch) | |
tree | f372d561d3788b07e4cf07f456c472950bba6b88 /cpp/src | |
parent | bc55fa6b1acbcb42ee18f01d5c7082482cafbb51 (diff) | |
download | qpid-python-0802d37628e75297bc3a59fb323719183fb13385.tar.gz |
Split Socket::listen
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@824443 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/qpid/sys/Socket.h | 1 | ||||
-rw-r--r-- | cpp/src/qpid/sys/posix/Socket.cpp | 8 |
2 files changed, 7 insertions, 2 deletions
diff --git a/cpp/src/qpid/sys/Socket.h b/cpp/src/qpid/sys/Socket.h index 4a8cf0dd50..76b993fd63 100644 --- a/cpp/src/qpid/sys/Socket.h +++ b/cpp/src/qpid/sys/Socket.h @@ -56,6 +56,7 @@ public: *@return The bound port. */ QPID_COMMON_EXTERN int listen(uint16_t port = 0, int backlog = 10) const; + QPID_COMMON_EXTERN int listen(const SocketAddress&, int backlog = 10) const; /** Returns the "socket name" ie the address bound to * the near end of the socket diff --git a/cpp/src/qpid/sys/posix/Socket.cpp b/cpp/src/qpid/sys/posix/Socket.cpp index be26027405..481aa6c88e 100644 --- a/cpp/src/qpid/sys/posix/Socket.cpp +++ b/cpp/src/qpid/sys/posix/Socket.cpp @@ -172,15 +172,19 @@ int Socket::listen(uint16_t port, int backlog) const SocketAddress sa("", boost::lexical_cast<std::string>(port)); createSocket(sa); + return listen(sa, backlog); +} +int Socket::listen(const SocketAddress& sa, int backlog) const +{ const int& socket = impl->fd; int yes=1; QPID_POSIX_CHECK(setsockopt(socket,SOL_SOCKET,SO_REUSEADDR,&yes,sizeof(yes))); if (::bind(socket, getAddrInfo(sa).ai_addr, getAddrInfo(sa).ai_addrlen) < 0) - throw Exception(QPID_MSG("Can't bind to port " << port << ": " << strError(errno))); + throw Exception(QPID_MSG("Can't bind to port " << sa.asString() << ": " << strError(errno))); if (::listen(socket, backlog) < 0) - throw Exception(QPID_MSG("Can't listen on port " << port << ": " << strError(errno))); + throw Exception(QPID_MSG("Can't listen on port " << sa.asString() << ": " << strError(errno))); struct sockaddr_in name; socklen_t namelen = sizeof(name); |