diff options
author | Andrew Stitcher <astitcher@apache.org> | 2011-05-26 20:38:35 +0000 |
---|---|---|
committer | Andrew Stitcher <astitcher@apache.org> | 2011-05-26 20:38:35 +0000 |
commit | 6d47d4bffb21686c41671de0870fc263d374ac8b (patch) | |
tree | 287ca8996f36416fcee122ab2557fa7e2b99ff23 | |
parent | 1a91b60668e8f5e36751906db10480f1e9b6f372 (diff) | |
download | qpid-python-6d47d4bffb21686c41671de0870fc263d374ac8b.tar.gz |
NO-JIRA: Small improvements to Socket code
- Rewrite SocketAddress::operator= in terms of copy constructor
- Improve error diagnostic
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1128066 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | cpp/src/qpid/sys/posix/SocketAddress.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/cpp/src/qpid/sys/posix/SocketAddress.cpp b/cpp/src/qpid/sys/posix/SocketAddress.cpp index 8f5f29d793..542c6f7691 100644 --- a/cpp/src/qpid/sys/posix/SocketAddress.cpp +++ b/cpp/src/qpid/sys/posix/SocketAddress.cpp @@ -27,6 +27,8 @@ #include <string.h> #include <netdb.h> +#include <algorithm> + namespace qpid { namespace sys { @@ -46,15 +48,9 @@ SocketAddress::SocketAddress(const SocketAddress& sa) : SocketAddress& SocketAddress::operator=(const SocketAddress& sa) { - if (&sa != this) { - host = sa.host; - port = sa.port; + SocketAddress temp(sa); - if (addrInfo) { - ::freeaddrinfo(addrInfo); - addrInfo = 0; - } - } + std::swap(temp, *this); return *this; } @@ -88,7 +84,7 @@ const ::addrinfo& getAddrInfo(const SocketAddress& sa) int n = ::getaddrinfo(node, service, &hints, &sa.addrInfo); if (n != 0) - throw Exception(QPID_MSG("Cannot resolve " << sa.host << ": " << ::gai_strerror(n))); + throw Exception(QPID_MSG("Cannot resolve " << sa.asString() << ": " << ::gai_strerror(n))); } return *sa.addrInfo; |