diff --git a/aether/client_connectivity_policy.h b/aether/client_connectivity_policy.h index e8265c40..d038af72 100644 --- a/aether/client_connectivity_policy.h +++ b/aether/client_connectivity_policy.h @@ -125,8 +125,8 @@ class ClientConnectivityPolicy : public Obj { const noexcept { return rx_timings_; } - Event* suspend_allowed_event() noexcept { - return &suspend_allowed_event_; + Event::Subscriber suspend_allowed_event() noexcept { + return EventSubscriber{suspend_allowed_event_}; } ConnectivityStatus GetStatus() const noexcept; diff --git a/aether/client_messages/p2p_message_stream.cpp b/aether/client_messages/p2p_message_stream.cpp index 650a9470..c202645f 100644 --- a/aether/client_messages/p2p_message_stream.cpp +++ b/aether/client_messages/p2p_message_stream.cpp @@ -20,8 +20,8 @@ #include "aether/config.h" -#include "aether/cloud.h" #include "aether/client.h" +#include "aether/cloud.h" #include "aether/cloud_connections/cloud_request.h" #include "aether/cloud_connections/cloud_subscription.h" @@ -156,7 +156,9 @@ P2pStream::P2pStream(AeContext const& ae_context, Ptr const& client, AE_TELE_DEBUG(kP2pMessageStreamNew, "P2pStream created for {}", destination_); assert(!destination_.empty()); - ConnectReceive(); + if (handle_) { + ConnectReceive(); + } ConnectSend(); } @@ -202,8 +204,8 @@ void P2pStream::WriteOut(DataBuffer const& data) { Uid const& P2pStream::destination() const { return destination_; } void P2pStream::ConnectReceive() { - out_data_sub_ = handle_.out_data_event().Subscribe( - MethodPtr<&P2pStream::WriteOut>{this}); + out_data_sub_ = + handle_.out_data_event().Subscribe(MethodPtr<&P2pStream::WriteOut>{this}); } void P2pStream::ConnectSend() { diff --git a/aether/client_messages/p2p_message_stream.h b/aether/client_messages/p2p_message_stream.h index 9bb6c371..64da048b 100644 --- a/aether/client_messages/p2p_message_stream.h +++ b/aether/client_messages/p2p_message_stream.h @@ -19,15 +19,15 @@ #include "aether/common.h" -#include "aether/types/uid.h" #include "aether/ae_context.h" #include "aether/ptr/ptr_view.h" +#include "aether/types/uid.h" #include "aether/write_action/buffer_write.h" #include "aether/client_messages/p2p_port_handle.h" -#include "aether/connection_manager/client_cloud_manager.h" #include "aether/cloud_connections/cloud_server_connections.h" +#include "aether/connection_manager/client_cloud_manager.h" namespace ae { class Client;