@@ -5,7 +5,7 @@ use mio::{Poll, PollOpt, Ready, Token};
5
5
use mio_extras:: timer:: Timeout ;
6
6
use p2p:: {
7
7
msg_to_read, msg_to_send, Handle , HolePunchInfo , HolePunchMediator , Interface , NatInfo ,
8
- RendezvousInfo , Res ,
8
+ QueuedNotifier , RendezvousInfo , Res ,
9
9
} ;
10
10
use socket_collection:: TcpSock ;
11
11
use sodium:: crypto:: box_;
@@ -117,32 +117,29 @@ impl OverlayConnect {
117
117
118
118
if let PeerState :: Discovered = * stored_state {
119
119
let weak = self . self_weak . clone ( ) ;
120
- let handler = move |ifc : & mut Interface , poll : & Poll , nat_info, res| {
120
+ let handler = move |ifc : & mut Interface , poll : & Poll , ( nat_info, res) | {
121
121
if let Some ( overlay_connect) = weak. upgrade ( ) {
122
122
if let Some ( core) = ifc. as_any ( ) . downcast_mut :: < Core > ( ) {
123
- overlay_connect. borrow_mut ( ) . handle_rendezvous_res (
124
- core,
125
- poll,
126
- peer. clone ( ) ,
127
- nat_info,
128
- res,
129
- ) ;
123
+ overlay_connect
124
+ . borrow_mut ( )
125
+ . handle_rendezvous_res ( core, poll, peer, nat_info, res) ;
130
126
} else {
131
127
warn ! ( "Failed to conver Interface to Core" ) ;
132
128
}
133
129
}
134
130
} ;
135
131
136
- let next_state = match HolePunchMediator :: start ( core, poll, Box :: new ( handler) ) {
137
- Ok ( mediator_token) => PeerState :: CreatingRendezvousInfo {
138
- mediator_token,
139
- peer_info : None ,
140
- } ,
141
- Err ( e) => {
142
- info ! ( "Could not initialise p2p mediator: {:?}" , e) ;
143
- return ;
144
- }
145
- } ;
132
+ let next_state =
133
+ match HolePunchMediator :: start ( core, poll, QueuedNotifier :: new ( handler) ) {
134
+ Ok ( mediator_token) => PeerState :: CreatingRendezvousInfo {
135
+ mediator_token,
136
+ peer_info : None ,
137
+ } ,
138
+ Err ( e) => {
139
+ info ! ( "Could not initialise p2p mediator: {:?}" , e) ;
140
+ return ;
141
+ }
142
+ } ;
146
143
147
144
* stored_state = next_state;
148
145
} else {
@@ -360,38 +357,37 @@ impl OverlayConnect {
360
357
let handler = move |ifc : & mut Interface , poll : & Poll , res| {
361
358
if let Some ( overlay_connect) = weak. upgrade ( ) {
362
359
if let Some ( core) = ifc. as_any ( ) . downcast_mut :: < Core > ( ) {
363
- overlay_connect. borrow_mut ( ) . handle_holepunch_res (
364
- core,
365
- poll,
366
- src_peer. clone ( ) ,
367
- res,
368
- ) ;
360
+ overlay_connect
361
+ . borrow_mut ( )
362
+ . handle_holepunch_res ( core, poll, src_peer, res) ;
369
363
} else {
370
364
warn ! ( "Failed to conver Interface to Core" ) ;
371
365
}
372
366
}
373
367
} ;
374
- Handle :: start_hole_punch ( core, mediator_token, src_info, Box :: new ( handler) ) ;
368
+ Handle :: start_hole_punch (
369
+ core,
370
+ poll,
371
+ mediator_token,
372
+ src_info,
373
+ QueuedNotifier :: new ( handler) ,
374
+ ) ;
375
375
PeerState :: AwaitingHolePunchResult
376
376
}
377
377
PeerState :: Discovered => {
378
378
let weak = self . self_weak . clone ( ) ;
379
- let handler = move |ifc : & mut Interface , poll : & Poll , nat_info, res| {
379
+ let handler = move |ifc : & mut Interface , poll : & Poll , ( nat_info, res) | {
380
380
if let Some ( overlay_connect) = weak. upgrade ( ) {
381
381
if let Some ( core) = ifc. as_any ( ) . downcast_mut :: < Core > ( ) {
382
- overlay_connect. borrow_mut ( ) . handle_rendezvous_res (
383
- core,
384
- poll,
385
- src_peer. clone ( ) ,
386
- nat_info,
387
- res,
388
- ) ;
382
+ overlay_connect
383
+ . borrow_mut ( )
384
+ . handle_rendezvous_res ( core, poll, src_peer, nat_info, res) ;
389
385
} else {
390
386
warn ! ( "Failed to conver Interface to Core" ) ;
391
387
}
392
388
}
393
389
} ;
394
- match HolePunchMediator :: start ( core, poll, Box :: new ( handler) ) {
390
+ match HolePunchMediator :: start ( core, poll, QueuedNotifier :: new ( handler) ) {
395
391
Ok ( mediator_token) => PeerState :: CreatingRendezvousInfo {
396
392
mediator_token,
397
393
peer_info : Some ( src_info) ,
@@ -471,22 +467,20 @@ impl OverlayConnect {
471
467
let handler = move |ifc : & mut Interface , poll : & Poll , res| {
472
468
if let Some ( overlay_connect) = weak. upgrade ( ) {
473
469
if let Some ( core) = ifc. as_any ( ) . downcast_mut :: < Core > ( ) {
474
- overlay_connect. borrow_mut ( ) . handle_holepunch_res (
475
- core,
476
- poll,
477
- for_peer. clone ( ) ,
478
- res,
479
- ) ;
470
+ overlay_connect
471
+ . borrow_mut ( )
472
+ . handle_holepunch_res ( core, poll, for_peer, res) ;
480
473
} else {
481
474
warn ! ( "Failed to conver Interface to Core" ) ;
482
475
}
483
476
}
484
477
} ;
485
478
Handle :: start_hole_punch (
486
479
core,
480
+ poll,
487
481
mediator_token,
488
482
peer_info,
489
- Box :: new ( handler) ,
483
+ QueuedNotifier :: new ( handler) ,
490
484
) ;
491
485
PeerState :: AwaitingHolePunchResult
492
486
} else {
0 commit comments