@@ -26,7 +26,6 @@ extern crate tox;
26
26
extern crate futures;
27
27
extern crate futures_timer;
28
28
extern crate tokio;
29
- extern crate tokio_core;
30
29
extern crate tokio_io;
31
30
extern crate rustc_serialize;
32
31
@@ -37,12 +36,9 @@ extern crate env_logger;
37
36
use futures:: * ;
38
37
use futures:: sync:: mpsc;
39
38
use futures_timer:: Interval ;
40
- use tokio_core:: reactor:: Core ;
41
39
use tokio:: net:: { UdpSocket , UdpFramed } ;
42
40
43
- use std:: cell:: RefCell ;
44
41
use std:: net:: SocketAddr ;
45
- use std:: rc:: Rc ;
46
42
use std:: io:: { ErrorKind , Error } ;
47
43
use std:: time:: * ;
48
44
use rustc_serialize:: hex:: FromHex ;
@@ -65,14 +61,12 @@ fn main() {
65
61
66
62
let local: SocketAddr = "0.0.0.0:33445" . parse ( ) . unwrap ( ) ;
67
63
68
- let mut core = Core :: new ( ) . unwrap ( ) ;
69
-
70
64
// Bind a UDP listener to the socket address.
71
65
let socket = UdpSocket :: bind ( & local) . unwrap ( ) ;
72
66
73
67
// Create a channel for this socket
74
68
let ( tx, rx) = mpsc:: unbounded :: < ( DhtPacket , SocketAddr ) > ( ) ;
75
- let server_obj = Rc :: new ( RefCell :: new ( Server :: new ( tx, pk, sk) ) ) ;
69
+ let server_obj = Server :: new ( tx, pk, sk) ;
76
70
77
71
// get PK bytes of some "random" bootstrap node (Impyy's)
78
72
let bootstrap_pk_bytes = FromHex :: from_hex (
@@ -81,18 +75,17 @@ fn main() {
81
75
// create PK from bytes
82
76
let bootstrap_pk = PublicKey :: from_slice ( & bootstrap_pk_bytes) . unwrap ( ) ;
83
77
84
- //"51.15.37.145:33445".parse().unwrap()
85
78
let saddr: SocketAddr = "198.98.51.198:33445" . parse ( ) . unwrap ( ) ;
86
79
let bootstrap_pn = PackedNode :: new ( true , saddr, & bootstrap_pk) ;
87
- assert ! ( server_obj. borrow_mut ( ) . kbucket . try_add ( & bootstrap_pn) ) ;
80
+ assert ! ( server_obj. try_add_to_kbucket ( & bootstrap_pn) ) ;
88
81
89
82
let ( sink, stream) = UdpFramed :: new ( socket, DhtCodec ) . split ( ) ;
90
83
// The server task asynchronously iterates over and processes each
91
84
// incoming packet.
92
85
let server_obj_c = server_obj. clone ( ) ;
93
86
let handler = stream. for_each ( move |( packet, addr) | {
94
87
println ! ( "recv = {:?}" , packet. clone( ) ) ;
95
- let _ = server_obj_c. borrow_mut ( ) . handle_packet ( ( packet, addr) ) ;
88
+ let _ = server_obj_c. handle_packet ( ( packet, addr) ) ;
96
89
Ok ( ( ) )
97
90
} )
98
91
. map_err ( |err| {
@@ -126,33 +119,36 @@ fn main() {
126
119
127
120
let server_obj_c = server_obj. clone ( ) ;
128
121
let ping_sender = ping_wakeups. for_each ( move |( ) | {
129
- server_obj_c. borrow_mut ( ) . send_pings ( )
122
+ println ! ( "ping_wakeup" ) ;
123
+ server_obj_c. send_pings ( )
130
124
} )
131
125
. map_err ( |_err| Error :: new ( ErrorKind :: Other , "Ping timer error" ) ) ;
132
126
133
127
// 20 seconds for NodesRequest
134
128
let nodes_wakeups = Interval :: new ( Duration :: from_secs ( 20 ) ) ;
135
129
let server_obj_c = server_obj. clone ( ) ;
136
130
let nodes_sender = nodes_wakeups. for_each ( move |( ) | {
131
+ println ! ( "nodes_wakeup" ) ;
137
132
let friend_pk = PublicKey ( [ 15 , 107 , 126 , 130 , 81 , 55 , 154 , 157 ,
138
133
192 , 117 , 0 , 225 , 119 , 43 , 48 , 117 ,
139
134
84 , 109 , 112 , 57 , 243 , 216 , 4 , 171 ,
140
135
185 , 111 , 33 , 146 , 221 , 31 , 77 , 118 ] ) ;
141
- server_obj_c. borrow_mut ( ) . send_nodes_req ( friend_pk)
136
+ server_obj_c. send_nodes_req ( friend_pk)
142
137
} )
143
138
. map_err ( |_err| Error :: new ( ErrorKind :: Other , "Nodes timer error" ) ) ;
144
139
145
140
// 3 seconds for NatPingRequest
146
141
let nat_wakeups = Interval :: new ( Duration :: from_secs ( 3 ) ) ;
147
142
let server_obj_c = server_obj. clone ( ) ;
148
143
let nat_sender = nat_wakeups. for_each ( move |( ) | {
144
+ println ! ( "nat_wakeup" ) ;
149
145
let peer_pk = gen_keypair ( ) . 0 ;
150
146
let node = PackedNode :: new ( false , SocketAddr :: V4 ( "127.0.0.1:33445" . parse ( ) . unwrap ( ) ) , & peer_pk. clone ( ) ) ;
151
147
let friend_pk = PublicKey ( [ 15 , 107 , 126 , 130 , 81 , 55 , 154 , 157 ,
152
148
192 , 117 , 0 , 225 , 119 , 43 , 48 , 117 ,
153
149
84 , 109 , 112 , 57 , 243 , 216 , 4 , 171 ,
154
150
185 , 111 , 33 , 146 , 221 , 31 , 77 , 118 ] ) ;
155
- server_obj_c. borrow_mut ( ) . send_nat_ping_req ( node, friend_pk)
151
+ server_obj_c. send_nat_ping_req ( node, friend_pk)
156
152
} )
157
153
. map_err ( |_err| Error :: new ( ErrorKind :: Other , "NatPing timer error" ) ) ;
158
154
@@ -173,9 +169,9 @@ fn main() {
173
169
. map ( |_| ( ) )
174
170
. map_err ( move |( err, _select_next) | {
175
171
error ! ( "Processing ended with error: {:?}" , err) ;
176
- err
172
+ ( )
177
173
} ) ;
178
174
179
175
info ! ( "server running on localhost:12345" ) ;
180
- core . run ( server) . unwrap ( ) ;
176
+ tokio :: run ( server) ;
181
177
}
0 commit comments