diff options
| author | Gordon Sim <gsim@apache.org> | 2008-05-04 16:39:22 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2008-05-04 16:39:22 +0000 |
| commit | 077992f5b43f5ba7f70dce22de05b56b36107073 (patch) | |
| tree | 8089d9606032f54069b92f9371d2549ce3e58fec /cpp/src | |
| parent | 8e73417abb208c2aa072e7512a2a17e1a542d4df (diff) | |
| download | qpid-python-077992f5b43f5ba7f70dce22de05b56b36107073.tar.gz | |
Fix error handling for connection close during startup.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@653248 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
| -rw-r--r-- | cpp/src/qpid/client/ConnectionHandler.cpp | 2 | ||||
| -rw-r--r-- | cpp/src/qpid/client/ConnectionImpl.cpp | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/cpp/src/qpid/client/ConnectionHandler.cpp b/cpp/src/qpid/client/ConnectionHandler.cpp index 81d966d53f..df1afb87a9 100644 --- a/cpp/src/qpid/client/ConnectionHandler.cpp +++ b/cpp/src/qpid/client/ConnectionHandler.cpp @@ -170,9 +170,9 @@ void ConnectionHandler::redirect(const std::string& /*host*/, const Array& /*kno void ConnectionHandler::close(uint16_t replyCode, const std::string& replyText) { proxy.closeOk(); - setState(CLOSED); errorCode = replyCode; errorText = replyText; + setState(CLOSED); QPID_LOG(warning, "Broker closed connection: " << replyCode << ", " << replyText); if (onError) { onError(replyCode, replyText); diff --git a/cpp/src/qpid/client/ConnectionImpl.cpp b/cpp/src/qpid/client/ConnectionImpl.cpp index 643d42403d..67ae2293f1 100644 --- a/cpp/src/qpid/client/ConnectionImpl.cpp +++ b/cpp/src/qpid/client/ConnectionImpl.cpp @@ -48,12 +48,13 @@ ConnectionImpl::ConnectionImpl(framing::ProtocolVersion v, const ConnectionSetti handler.out = boost::bind(&Connector::send, boost::ref(connector), _1); handler.onClose = boost::bind(&ConnectionImpl::closed, this, NORMAL, std::string()); - handler.onError = boost::bind(&ConnectionImpl::closed, this, _1, _2); connector.setInputHandler(&handler); connector.setTimeoutHandler(this); connector.setShutdownHandler(this); open(settings.host, settings.port); + //only set error handler once open + handler.onError = boost::bind(&ConnectionImpl::closed, this, _1, _2); } ConnectionImpl::~ConnectionImpl() { |
