@@ -226,36 +226,32 @@ fn main() {
226
226
err
227
227
} ) ;
228
228
229
- let server: IoFuture < ( ) > = Box :: new ( network) ;
230
- let server = add_server_main_loop ( server, & server_obj) ;
231
- let server = add_onion_key_refresher ( server, & server_obj) ;
232
- let server = server. join ( run_lan_discovery_sender ( lan_discovery_sender) ) . map ( |_| ( ) ) ;
233
- let server = server. join ( dht_pk_handler) . map ( |_| ( ) ) ;
234
- let server = server. join ( lossless_handler) . map ( |_| ( ) ) ;
235
- let server = server. join ( lossy_handler) . map ( |_| ( ) ) ;
236
-
237
- let server = server
238
- . map ( |_| ( ) )
239
- . map_err ( move |err| {
240
- error ! ( "Processing ended with error: {:?}" , err) ;
241
- ( )
242
- } ) ;
229
+ let server: IoFuture < ( ) > = Box :: new ( network) ; // TODO: remove these boxes on rustc 1.26
230
+ let server: IoFuture < ( ) > = Box :: new ( server. select ( run_server ( & server_obj) ) . map ( |_| ( ) ) . map_err ( |( e, _) | e) ) ;
231
+ let server: IoFuture < ( ) > = Box :: new ( server. select ( run_lan_discovery_sender ( lan_discovery_sender) ) . map ( |_| ( ) ) . map_err ( |( e, _) | e) ) ;
232
+ let server: IoFuture < ( ) > = Box :: new ( server. select ( dht_pk_handler) . map ( |_| ( ) ) . map_err ( |( e, _) | e) ) ;
233
+ let server: IoFuture < ( ) > = Box :: new ( server. select ( lossless_handler) . map ( |_| ( ) ) . map_err ( |( e, _) | e) ) ;
234
+ let server: IoFuture < ( ) > = Box :: new ( server. select ( lossy_handler) . map ( |_| ( ) ) . map_err ( |( e, _) | e) ) ;
235
+
236
+ let server = server. map_err ( move |err| {
237
+ error ! ( "Processing ended with error: {:?}" , err) ;
238
+ ( )
239
+ } ) ;
243
240
244
241
info ! ( "server running on localhost:12345" ) ;
245
242
tokio:: run ( server) ;
246
243
}
247
244
248
- fn add_server_main_loop ( base_selector : IoFuture < ( ) > , server_obj : & Server ) -> IoFuture < ( ) > {
249
- // 20 seconds for NodesRequest
245
+ fn run_server ( server_obj : & Server ) -> IoFuture < ( ) > {
250
246
let interval = Duration :: from_secs ( 1 ) ;
251
- let nodes_wakeups = Interval :: new ( Instant :: now ( ) + interval , interval) ;
247
+ let dht_wakeups = Interval :: new ( Instant :: now ( ) , interval) ;
252
248
let mut server_obj_c = server_obj. clone ( ) ;
253
249
let mut bootstrap_fast: bool = false ;
254
250
255
- let nodes_sender = nodes_wakeups
251
+ let future = dht_wakeups
256
252
. map_err ( |e| Error :: new ( ErrorKind :: Other , format ! ( "Nodes timer error: {:?}" , e) ) )
257
253
. for_each ( move |_instant| {
258
- println ! ( "main_loop_wakeup " ) ;
254
+ trace ! ( "DHT server wake up " ) ;
259
255
// flag for fast bootstrapping
260
256
if bootstrap_fast {
261
257
server_obj_c. dht_main_loop ( )
@@ -290,15 +286,9 @@ fn add_server_main_loop(base_selector: IoFuture<()>, server_obj: &Server) -> IoF
290
286
291
287
res
292
288
}
293
- } )
294
- . map_err ( |_err| Error :: new ( ErrorKind :: Other , "Nodes timer error" ) ) ;
289
+ } ) ;
295
290
296
- Box :: new ( base_selector. select ( Box :: new ( nodes_sender) )
297
- . map ( |_| ( ) )
298
- . map_err ( move |( err, _select_next) | {
299
- error ! ( "Processing ended with error: {:?}" , err) ;
300
- err
301
- } ) )
291
+ Box :: new ( future)
302
292
}
303
293
304
294
fn run_lan_discovery_sender ( mut lan_discovery_sender : LanDiscoverySender ) -> IoFuture < ( ) > {
0 commit comments