@@ -12,6 +12,7 @@ use ursa::{
12
12
signatures:: ed25519:: Ed25519Sha512 ,
13
13
} ;
14
14
15
+ const EXPECTED_PK_LENGTH : usize = 32 ;
15
16
16
17
fn main ( ) {
17
18
@@ -94,7 +95,7 @@ fn main() {
94
95
}
95
96
96
97
fn _send_test_msg ( sock : & zmq:: Socket , timeout : i64 , tries_count : i32 ) -> Result < String , String > {
97
- let msg = "{ \ " op\ " : \ " LEDGER_STATUS\ " , \ " txnSeqNo\ " : 0, \ " merkleRoot\ " : null, \ " ledgerId\ " : 0, \ " ppSeqNo\ " : null, \ " viewNo\ " : null, \ " protocolVersion\ " : 2}" ;
98
+ let msg = r# "{ "op": "LEDGER_STATUS", "txnSeqNo": 0, "merkleRoot": null, "ledgerId": 0, "ppSeqNo": null, "viewNo": null, "protocolVersion": 2}"# ;
98
99
match sock. send ( & msg, 0 ) {
99
100
Ok ( ( ) ) => {
100
101
println ! ( "Successfully sent message: {}" , msg. to_string( ) ) ;
@@ -119,25 +120,17 @@ fn _send_test_msg(sock: &zmq::Socket, timeout: i64, tries_count: i32) -> Result<
119
120
}
120
121
}
121
122
122
- fn _wait_for_response ( sock : & zmq:: Socket , timeout : i64 ) -> Result < String , String > {
123
+ fn _wait_for_response ( sock : & zmq:: Socket , timeout : i64 ) -> Result < String , ( ) > {
123
124
let mut pool_items = [ sock. as_poll_item ( zmq:: POLLIN ) ] ;
124
125
println ! ( "Waiting for {} seconds for getting reply from server" , timeout) ;
125
- zmq:: poll ( & mut pool_items, timeout * 1000 ) . unwrap ( ) ;
126
+ zmq:: poll ( & mut pool_items, timeout * 1000 ) . expect ( "Error while polling ZMQ socket [Internal Error]" ) ;
126
127
if pool_items[ 0 ] . is_readable ( ) {
127
128
match sock. recv_string ( 0 ) {
128
- Ok ( in_result) => match in_result {
129
- Ok ( rep) => {
130
- return Ok ( rep) ;
131
- } ,
132
- Err ( err) => {
133
- println ! ( "Error {:?} was occurred" , err) ;
134
- return Err ( std:: format!( "{:?}" , err) )
135
- }
136
- }
137
- Err ( err) => return Err ( std:: format!( "{:?}" , err) ) ,
129
+ Ok ( Ok ( rep) ) => return Ok ( rep) ,
130
+ _ => return Err ( ( ) )
138
131
} ;
139
132
}
140
- Err ( "" . to_string ( ) )
133
+ Err ( ( ) )
141
134
}
142
135
143
136
fn _connect_to_validator ( dest : & String , address : & String , port : & String ) -> Result < zmq:: Socket , String > {
@@ -146,13 +139,17 @@ fn _connect_to_validator(dest: &String, address: &String, port: &String) -> Resu
146
139
. map_err ( |_| format ! ( "Error while creating a socket instance [Internal Error]" ) )
147
140
. unwrap ( ) ;
148
141
let key_pair = zmq:: CurveKeyPair :: new ( ) . expect ( "FIXME" ) ;
149
- let zaddr = std :: format!( "tcp://{}:{}" , address, port) ;
142
+ let zaddr = format ! ( "tcp://{}:{}" , address, port) ;
150
143
let node_verkey = dest
151
144
. as_str ( )
152
145
. from_base58 ( )
153
146
. map_err ( |err| format ! ( "Error while transform to base58: {:?} [Internal Error]" , err) )
154
147
. unwrap ( ) ;
155
148
149
+ if node_verkey. len ( ) != EXPECTED_PK_LENGTH {
150
+ return Err ( format ! ( "Public key which is got from dest {} \
151
+ has wrong length (expected length of Public Key is 32)", dest) )
152
+ }
156
153
let node_verkey = Ed25519Sha512 :: ver_key_to_key_exchange ( & PublicKey ( node_verkey) )
157
154
. map_err ( |err| format ! ( "Cannot convert key to curve25519 key: {:?} [Internal Error]" , err) )
158
155
. unwrap ( ) ;
@@ -166,8 +163,7 @@ fn _connect_to_validator(dest: &String, address: &String, port: &String) -> Resu
166
163
zmq_sock. set_curve_publickey ( & key_pair. public_key )
167
164
. expect ( "Error while setting public key for ZMQ socket [Internal Error]" ) ;
168
165
zmq_sock. set_curve_serverkey ( zmq:: z85_encode ( public_key. as_slice ( ) )
169
- . map_err ( |err| format ! ( "Can't encode server key as z85: {:?}" , err) )
170
- . unwrap ( )
166
+ . map_err ( |err| format ! ( "Can't encode server key as z85: {:?}" , err) ) ?
171
167
. as_bytes ( ) )
172
168
. unwrap ( ) ;
173
169
zmq_sock. set_linger ( 0 )
@@ -180,7 +176,7 @@ fn _connect_to_validator(dest: &String, address: &String, port: &String) -> Resu
180
176
} ,
181
177
Err ( err) => {
182
178
println ! ( "{}" , err) ;
183
- return Err ( std :: format!( "{:?}" , err) )
179
+ return Err ( format ! ( "{:?}" , err) )
184
180
} ,
185
181
}
186
182
}
0 commit comments