if (proxy->main_port_.get()->GetFd() == fd) {
proxy->listener_ = nullptr;
proxy->main_port_.get()->SetDisconnectedSource(0);
- listener->OnDisconnected(proxy->target_appid_);
+ if (listener)
+ listener->OnDisconnected(proxy->target_appid_);
+
+ proxy->main_port_.reset();
+ proxy->delegate_port_.reset();
} else if (proxy->delegate_port_.get()->GetFd() == fd) {
proxy->delegate_port_.get()->SetDisconnectedSource(0);
+
+ proxy->main_port_.reset();
+ proxy->delegate_port_.reset();
}
return FALSE;
proxy->delegate_port_.get()->SetSource(0);
if (listener)
listener->OnDisconnected(proxy->target_appid_);
+
+ proxy->main_port_.reset();
+ proxy->delegate_port_.reset();
return FALSE;
}