diff --git a/xplat/Flipper/FlipperConnectionManagerImpl.cpp b/xplat/Flipper/FlipperConnectionManagerImpl.cpp index 3c6aa3e8b..c7c08d74b 100644 --- a/xplat/Flipper/FlipperConnectionManagerImpl.cpp +++ b/xplat/Flipper/FlipperConnectionManagerImpl.cpp @@ -53,30 +53,7 @@ class ConnectionEvents { if (impl == nullptr) { return; } - switch (event) { - case SocketEvent::OPEN: - impl->isConnected_ = true; - if (impl->connectionIsTrusted_) { - impl->callbacks_->onConnected(); - } - break; - case SocketEvent::SSL_ERROR: - // SSL errors are not handled as a connection event - // on this handler. - break; - case SocketEvent::CLOSE: - case SocketEvent::ERROR: - if (!impl->isConnected_) { - return; - } - impl->isConnected_ = false; - if (impl->connectionIsTrusted_) { - impl->connectionIsTrusted_ = false; - impl->callbacks_->onDisconnected(); - } - impl->reconnect(); - break; - } + impl->handleSocketEvent(event); } } @@ -114,7 +91,34 @@ void FlipperConnectionManagerImpl::setCertificateProvider( std::shared_ptr FlipperConnectionManagerImpl::getCertificateProvider() { return certProvider_; -}; +} + +void FlipperConnectionManagerImpl::handleSocketEvent(SocketEvent event) { + switch (event) { + case SocketEvent::OPEN: + isConnected_ = true; + if (connectionIsTrusted_) { + callbacks_->onConnected(); + } + break; + case SocketEvent::SSL_ERROR: + // SSL errors are not handled as a connection event + // on this handler. + break; + case SocketEvent::CLOSE: + case SocketEvent::ERROR: + if (!isConnected_) { + return; + } + isConnected_ = false; + if (connectionIsTrusted_) { + connectionIsTrusted_ = false; + callbacks_->onDisconnected(); + } + reconnect(); + break; + } +} void FlipperConnectionManagerImpl::start() { if (!FlipperSocketProvider::hasProvider()) { diff --git a/xplat/Flipper/FlipperConnectionManagerImpl.h b/xplat/Flipper/FlipperConnectionManagerImpl.h index 13aabc375..5e79a3014 100644 --- a/xplat/Flipper/FlipperConnectionManagerImpl.h +++ b/xplat/Flipper/FlipperConnectionManagerImpl.h @@ -82,6 +82,7 @@ class FlipperConnectionManagerImpl : public FlipperConnectionManager { void startSync(); bool connectAndExchangeCertificate(); bool connectSecurely(); + void handleSocketEvent(const SocketEvent event); bool isCertificateExchangeNeeded(); void requestSignedCertificate(); void processSignedCertificateResponse(