Browse Source

fix ID_EXISTS not sent out due to ipv6 change

rustdesk 2 years ago
parent
commit
ec202209f3
1 changed files with 3 additions and 3 deletions
  1. 3 3
      src/rendezvous_server.rs

+ 3 - 3
src/rendezvous_server.rs

@@ -789,7 +789,7 @@ impl RendezvousServer {
789
 
789
 
790
     #[inline]
790
     #[inline]
791
     async fn send_to_tcp(&mut self, msg: RendezvousMessage, addr: SocketAddr) {
791
     async fn send_to_tcp(&mut self, msg: RendezvousMessage, addr: SocketAddr) {
792
-        let mut tcp = self.tcp_punch.lock().await.remove(&addr);
792
+        let mut tcp = self.tcp_punch.lock().await.remove(&try_into_v4(addr));
793
         tokio::spawn(async move {
793
         tokio::spawn(async move {
794
             Self::send_to_sink(&mut tcp, msg).await;
794
             Self::send_to_sink(&mut tcp, msg).await;
795
         });
795
         });
@@ -817,7 +817,7 @@ impl RendezvousServer {
817
         msg: RendezvousMessage,
817
         msg: RendezvousMessage,
818
         addr: SocketAddr,
818
         addr: SocketAddr,
819
     ) -> ResultType<()> {
819
     ) -> ResultType<()> {
820
-        let mut sink = self.tcp_punch.lock().await.remove(&addr);
820
+        let mut sink = self.tcp_punch.lock().await.remove(&try_into_v4(addr));
821
         Self::send_to_sink(&mut sink, msg).await;
821
         Self::send_to_sink(&mut sink, msg).await;
822
         Ok(())
822
         Ok(())
823
     }
823
     }
@@ -1126,7 +1126,7 @@ impl RendezvousServer {
1126
             }
1126
             }
1127
         }
1127
         }
1128
         if sink.is_none() {
1128
         if sink.is_none() {
1129
-            self.tcp_punch.lock().await.remove(&addr);
1129
+            self.tcp_punch.lock().await.remove(&try_into_v4(addr));
1130
         }
1130
         }
1131
         log::debug!("Tcp connection from {:?} closed", addr);
1131
         log::debug!("Tcp connection from {:?} closed", addr);
1132
         Ok(())
1132
         Ok(())