Index: remoting/host/android/jni_host.cc |
diff --git a/remoting/host/android/jni_host.cc b/remoting/host/android/jni_host.cc |
index f6ae73cd911f3a66c2bcda4db2a138bfb50a46e6..11b3bcc90e7f26bc1a1583c9779eacc0d9ae6c84 100644 |
--- a/remoting/host/android/jni_host.cc |
+++ b/remoting/host/android/jni_host.cc |
@@ -92,7 +92,12 @@ void JniHost::Connect(JNIEnv* env, |
} |
void JniHost::Disconnect(JNIEnv* env, |
- const base::android::JavaParamRef<jobject>& caller) {} |
+ const base::android::JavaParamRef<jobject>& caller) { |
+ if (it2me_host_) { |
+ it2me_host_->Disconnect(); |
+ it2me_host_ = nullptr; |
+ } |
+} |
void JniHost::OnClientAuthenticated(const std::string& client_username) { |
HOST_LOG << "OnClientAuthenticated: " << client_username; |
@@ -112,6 +117,10 @@ void JniHost::OnNatPolicyChanged(bool nat_traversal_enabled) { |
void JniHost::OnStateChanged(It2MeHostState state, |
const std::string& error_message) { |
+ if (state == kDisconnected) { |
+ it2me_host_ = nullptr; |
+ } |
+ |
JNIEnv* env = base::android::AttachCurrentThread(); |
Java_Host_onStateChanged(env, java_host_.obj(), state, |
ConvertUTF8ToJavaString(env, error_message).obj()); |