diff options
Diffstat (limited to 'qpid/cpp')
| -rw-r--r-- | qpid/cpp/src/qpid/client/ConnectionHandler.cpp | 2 | ||||
| -rw-r--r-- | qpid/cpp/src/qpid/client/ConnectionImpl.cpp | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/qpid/cpp/src/qpid/client/ConnectionHandler.cpp b/qpid/cpp/src/qpid/client/ConnectionHandler.cpp index 81d966d53f..df1afb87a9 100644 --- a/qpid/cpp/src/qpid/client/ConnectionHandler.cpp +++ b/qpid/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/qpid/cpp/src/qpid/client/ConnectionImpl.cpp b/qpid/cpp/src/qpid/client/ConnectionImpl.cpp index 643d42403d..67ae2293f1 100644 --- a/qpid/cpp/src/qpid/client/ConnectionImpl.cpp +++ b/qpid/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() { |
