Browse Source

forward renamed to relay

open-trade 5 years ago
parent
commit
fcd949c556
3 changed files with 17 additions and 14 deletions
  1. 1 1
      libs/hbb_common
  2. 4 4
      src/hbbf/main.rs
  3. 12 9
      src/rendezvous_server.rs

+ 1 - 1
libs/hbb_common

@@ -1 +1 @@
1
-Subproject commit 6ccb0d96e7bb37ea43df5c53e07983d6c07804e5
1
+Subproject commit fdaa6c740c475f6023c93a148bc851655d0093ac

+ 4 - 4
src/hbbf/main.rs

@@ -38,14 +38,14 @@ async fn make_pair(stream: FramedStream, addr: SocketAddr) -> ResultType<()> {
38 38
     let mut stream = stream;
39 39
     if let Some(Ok(bytes)) = stream.next_timeout(30_000).await {
40 40
         if let Ok(msg_in) = RendezvousMessage::parse_from_bytes(&bytes) {
41
-            if let Some(rendezvous_message::Union::request_forward(rf)) = msg_in.union {
41
+            if let Some(rendezvous_message::Union::request_relay(rf)) = msg_in.union {
42 42
                 if !rf.uuid.is_empty() {
43 43
                     let peer = PEERS.lock().unwrap().remove(&rf.uuid);
44 44
                     if let Some(peer) = peer {
45 45
                         log::info!("Forward request {} from {} got paired", rf.uuid, addr);
46
-                        return forward(stream, peer).await;
46
+                        return relay(stream, peer).await;
47 47
                     } else {
48
-                        log::info!("New forward request {} from {}", rf.uuid, addr);
48
+                        log::info!("New relay request {} from {}", rf.uuid, addr);
49 49
                         PEERS.lock().unwrap().insert(rf.uuid.clone(), stream);
50 50
                         sleep(30.).await;
51 51
                         PEERS.lock().unwrap().remove(&rf.uuid);
@@ -57,7 +57,7 @@ async fn make_pair(stream: FramedStream, addr: SocketAddr) -> ResultType<()> {
57 57
     Ok(())
58 58
 }
59 59
 
60
-async fn forward(stream: FramedStream, peer: FramedStream) -> ResultType<()> {
60
+async fn relay(stream: FramedStream, peer: FramedStream) -> ResultType<()> {
61 61
     let mut peer = peer;
62 62
     let mut stream = stream;
63 63
     peer.set_raw();

+ 12 - 9
src/rendezvous_server.rs

@@ -157,17 +157,18 @@ impl RendezvousServer {
157 157
                                     Some(rendezvous_message::Union::punch_hole_request(ph)) => {
158 158
                                         allow_err!(rs.handle_tcp_punch_hole_request(addr, ph.id).await);
159 159
                                     }
160
-                                    Some(rendezvous_message::Union::request_forward(mut rf)) => {
160
+                                    Some(rendezvous_message::Union::request_relay(mut rf)) => {
161 161
                                         if !rs.pm.is_in_memory(&rf.id) {
162 162
                                             break;
163 163
                                         }
164 164
                                         let mut msg_out = RendezvousMessage::new();
165 165
                                         rf.socket_addr = AddrMangle::encode(addr);
166
-                                        msg_out.set_request_forward(rf);
166
+                                        msg_out.set_request_relay(rf);
167 167
                                         rs.tx.send((msg_out, addr)).ok();
168 168
                                     }
169
-                                    Some(rendezvous_message::Union::request_forward_response(rfr)) => {
169
+                                    Some(rendezvous_message::Union::request_relay_response(mut rfr)) => {
170 170
                                         let addr_b = AddrMangle::decode(&rfr.socket_addr);
171
+                                        rfr.socket_addr = Default::default();
171 172
                                         let sender_b= rs.tcp_punch.lock().unwrap().remove(&addr_b);
172 173
                                         if let Some(mut sender_b) = sender_b {
173 174
                                             if let Ok(bytes) = rfr.write_to_bytes() {
@@ -186,6 +187,8 @@ impl RendezvousServer {
186 187
                                     }
187 188
                                     _ => {}
188 189
                                 }
190
+                            } else {
191
+                                break;
189 192
                             }
190 193
                         }
191 194
                         rs.tcp_punch.lock().unwrap().remove(&addr);
@@ -252,10 +255,10 @@ impl RendezvousServer {
252 255
                         });
253 256
                     }
254 257
                 }
255
-                Some(rendezvous_message::Union::request_forward(rf)) => {
258
+                Some(rendezvous_message::Union::request_relay(rf)) => {
256 259
                     if self.pm.is_in_memory(&rf.id) {
257 260
                         let mut msg_out = RendezvousMessage::new();
258
-                        msg_out.set_request_forward(rf);
261
+                        msg_out.set_request_relay(rf);
259 262
                         socket.send(&msg_out, addr).await?
260 263
                     }
261 264
                 }
@@ -347,11 +350,11 @@ impl RendezvousServer {
347 350
             Some(peer) => peer.pk,
348 351
             _ => Vec::new(),
349 352
         };
350
-        let forward_server = phs.forward_server;
353
+        let relay_server = phs.relay_server;
351 354
         msg_out.set_punch_hole_response(PunchHoleResponse {
352 355
             socket_addr: AddrMangle::encode(addr),
353 356
             pk,
354
-            forward_server,
357
+            relay_server,
355 358
             ..Default::default()
356 359
         });
357 360
         if let Some(socket) = socket {
@@ -369,7 +372,7 @@ impl RendezvousServer {
369 372
         addr: SocketAddr,
370 373
         socket: Option<&'a mut FramedSocket>,
371 374
     ) -> ResultType<()> {
372
-        // forward local addrs of B to A
375
+        // relay local addrs of B to A
373 376
         let addr_a = AddrMangle::decode(&la.socket_addr);
374 377
         log::debug!(
375 378
             "{} local addrs response to {:?} from {:?}",
@@ -396,7 +399,7 @@ impl RendezvousServer {
396 399
         addr: SocketAddr,
397 400
         id: String,
398 401
     ) -> ResultType<(RendezvousMessage, Option<SocketAddr>)> {
399
-        // punch hole request from A, forward to B,
402
+        // punch hole request from A, relay to B,
400 403
         // check if in same intranet first,
401 404
         // fetch local addrs if in same intranet.
402 405
         // because punch hole won't work if in the same intranet,