File tree Expand file tree Collapse file tree 3 files changed +30
-12
lines changed Expand file tree Collapse file tree 3 files changed +30
-12
lines changed Original file line number Diff line number Diff line change @@ -25,7 +25,14 @@ impl In {
25
25
} else {
26
26
let ( own_tx, own_rx) = channel :: < Vec < u8 > > ( 100 ) ;
27
27
self . fullcone_map . insert ( saddr. clone ( ) , own_tx. clone ( ) ) ;
28
- tokio:: spawn ( self . clone ( ) . handle_udp ( saddr. clone ( ) , own_rx) ) ;
28
+ tokio:: spawn ( {
29
+ let self_clone = self . clone ( ) ;
30
+ let saddr = saddr. clone ( ) ;
31
+ async move {
32
+ self_clone. clone ( ) . handle_udp ( saddr. clone ( ) , own_rx) . await ;
33
+ self_clone. fullcone_map . remove ( & saddr) ;
34
+ }
35
+ } ) ;
29
36
own_tx
30
37
} ;
31
38
@@ -84,9 +91,6 @@ impl In {
84
91
}
85
92
_ => unreachable ! ( ) ,
86
93
}
87
-
88
- // delete from fullcone_map
89
- self . fullcone_map . remove ( & saddr) ;
90
94
} ) ;
91
95
}
92
96
}
Original file line number Diff line number Diff line change @@ -28,7 +28,17 @@ impl In {
28
28
} else {
29
29
let ( own_tx, own_rx) = channel :: < Vec < u8 > > ( 100 ) ;
30
30
self . fullcone_map . insert ( saddr. clone ( ) , own_tx. clone ( ) ) ;
31
- tokio:: spawn ( self . clone ( ) . handle_socks5_udp ( saddr. clone ( ) , own_rx) ) ;
31
+ tokio:: spawn ( {
32
+ let self_clone = self . clone ( ) ;
33
+ let saddr = saddr. clone ( ) ;
34
+ async move {
35
+ self_clone
36
+ . clone ( )
37
+ . handle_socks5_udp ( saddr. clone ( ) , own_rx)
38
+ . await ;
39
+ self_clone. fullcone_map . remove ( & saddr) ;
40
+ }
41
+ } ) ;
32
42
own_tx
33
43
} ;
34
44
@@ -153,9 +163,6 @@ impl In {
153
163
}
154
164
_ => unreachable ! ( ) ,
155
165
}
156
-
157
- // delete from fullcone_map
158
- self . fullcone_map . remove ( & saddr) ;
159
166
} ) ;
160
167
}
161
168
Original file line number Diff line number Diff line change @@ -53,7 +53,17 @@ impl In {
53
53
} else {
54
54
let ( own_tx, own_rx) = channel :: < ( String , Vec < u8 > ) > ( 100 ) ;
55
55
self . fullcone_map . insert ( saddr. clone ( ) , own_tx. clone ( ) ) ;
56
- tokio:: spawn ( self . clone ( ) . handle_tproxy_udp ( saddr. clone ( ) , own_rx) ) ;
56
+ tokio:: spawn ( {
57
+ let self_clone = self . clone ( ) ;
58
+ let saddr = saddr. clone ( ) ;
59
+ async move {
60
+ self_clone
61
+ . clone ( )
62
+ . handle_tproxy_udp ( saddr. clone ( ) , own_rx)
63
+ . await ;
64
+ self_clone. fullcone_map . remove ( & saddr) ;
65
+ }
66
+ } ) ;
57
67
own_tx
58
68
} ;
59
69
@@ -116,9 +126,6 @@ impl In {
116
126
}
117
127
_ => unreachable ! ( ) ,
118
128
}
119
-
120
- // delete from fullcone_map
121
- self . fullcone_map . remove ( & saddr) ;
122
129
} ) ;
123
130
}
124
131
You can’t perform that action at this time.
0 commit comments