Explorar o código

bin/ircd: fixing ping-pong reply which fixes occasional re-connection (#66)

dasman %!s(int64=4) %!d(string=hai) anos
pai
achega
7da841e9e7

+ 6 - 1
bin/ircd/src/irc_server.rs

@@ -84,7 +84,12 @@ impl IrcServerConnection {
                 //self.write_stream.write_all(b":f00!f00@127.0.0.1 PRIVMSG #dev :y0\n").await?;
                 //self.write_stream.write_all(b":f00!f00@127.0.0.1 PRIVMSG #dev :y0\n").await?;
             }
             }
             "PING" => {
             "PING" => {
-                self.reply("PONG").await?;
+                let line_clone = line.clone();
+                let split_line: Vec<&str> = line_clone.split_whitespace().collect();
+                if split_line.len() > 1 && split_line[0] == "PING" {
+                    let pong = format!("PONG {}\n", split_line[1]);
+                    self.reply(&pong).await?;
+                }
             }
             }
             "PRIVMSG" => {
             "PRIVMSG" => {
                 let channel = tokens.next().ok_or(Error::MalformedPacket)?;
                 let channel = tokens.next().ok_or(Error::MalformedPacket)?;

+ 6 - 6
bin/ircd/src/main.rs

@@ -82,7 +82,7 @@ async fn process_user_input(
 ) -> Result<()> {
 ) -> Result<()> {
     if line.is_empty() {
     if line.is_empty() {
         warn!("Received empty line from {}. Closing connection.", peer_addr);
         warn!("Received empty line from {}. Closing connection.", peer_addr);
-        return Err(Error::ChannelStopped);
+        return Err(Error::ChannelStopped)
     }
     }
     assert!(&line[(line.len() - 1)..] == "\n");
     assert!(&line[(line.len() - 1)..] == "\n");
     // Remove the \n character
     // Remove the \n character
@@ -92,7 +92,7 @@ async fn process_user_input(
 
 
     if let Err(err) = connection.update(line, p2p.clone()).await {
     if let Err(err) = connection.update(line, p2p.clone()).await {
         warn!("Connection error: {} for {}", err, peer_addr);
         warn!("Connection error: {} for {}", err, peer_addr);
-        return Err(Error::ChannelStopped);
+        return Err(Error::ChannelStopped)
     }
     }
 
 
     Ok(())
     Ok(())
@@ -103,14 +103,14 @@ async fn start(executor: Arc<Executor<'_>>, options: ProgramOptions) -> Result<(
         Ok(listener) => listener,
         Ok(listener) => listener,
         Err(err) => {
         Err(err) => {
             error!("Bind listener failed: {}", err);
             error!("Bind listener failed: {}", err);
-            return Err(Error::OperationFailed);
+            return Err(Error::OperationFailed)
         }
         }
     };
     };
     let local_addr = match listener.get_ref().local_addr() {
     let local_addr = match listener.get_ref().local_addr() {
         Ok(addr) => addr,
         Ok(addr) => addr,
         Err(err) => {
         Err(err) => {
             error!("Failed to get local address: {}", err);
             error!("Failed to get local address: {}", err);
-            return Err(Error::OperationFailed);
+            return Err(Error::OperationFailed)
         }
         }
     };
     };
     info!("Listening on {}", local_addr);
     info!("Listening on {}", local_addr);
@@ -177,7 +177,7 @@ async fn start(executor: Arc<Executor<'_>>, options: ProgramOptions) -> Result<(
             Ok((s, a)) => (s, a),
             Ok((s, a)) => (s, a),
             Err(err) => {
             Err(err) => {
                 error!("Error listening for connections: {}", err);
                 error!("Error listening for connections: {}", err);
-                return Err(Error::ServiceStopped);
+                return Err(Error::ServiceStopped)
             }
             }
         };
         };
         info!("Accepted client: {}", peer_addr);
         info!("Accepted client: {}", peer_addr);
@@ -196,7 +196,7 @@ struct JsonRpcInterface {}
 impl RequestHandler for JsonRpcInterface {
 impl RequestHandler for JsonRpcInterface {
     async fn handle_request(&self, req: JsonRequest, _executor: Arc<Executor<'_>>) -> JsonResult {
     async fn handle_request(&self, req: JsonRequest, _executor: Arc<Executor<'_>>) -> JsonResult {
         if req.params.as_array().is_none() {
         if req.params.as_array().is_none() {
-            return JsonResult::Err(jsonerr(InvalidParams, None, req.id));
+            return JsonResult::Err(jsonerr(InvalidParams, None, req.id))
         }
         }
 
 
         debug!(target: "RPC", "--> {}", serde_json::to_string(&req).unwrap());
         debug!(target: "RPC", "--> {}", serde_json::to_string(&req).unwrap());

+ 1 - 1
bin/map/src/main.rs

@@ -227,7 +227,7 @@ async fn render<B: Backend>(
             match k.unwrap() {
             match k.unwrap() {
                 Key::Char('q') => {
                 Key::Char('q') => {
                     terminal.clear()?;
                     terminal.clear()?;
-                    return Ok(());
+                    return Ok(())
                 }
                 }
                 Key::Char('j') => {
                 Key::Char('j') => {
                     view.id_list.next();
                     view.id_list.next();

+ 2 - 2
example/tree.rs

@@ -1,7 +1,7 @@
+use group::ff::Field;
 use incrementalmerkletree::{bridgetree::BridgeTree, Frontier, Tree};
 use incrementalmerkletree::{bridgetree::BridgeTree, Frontier, Tree};
 use pasta_curves::pallas;
 use pasta_curves::pallas;
 use rand::rngs::OsRng;
 use rand::rngs::OsRng;
-use group::ff::Field;
 
 
 use darkfi::{crypto::merkle_node::MerkleNode, Result};
 use darkfi::{crypto::merkle_node::MerkleNode, Result};
 
 
@@ -24,4 +24,4 @@ fn main() -> Result<()> {
     assert_eq!(root1, root2);
     assert_eq!(root1, root2);
 
 
     Ok(())
     Ok(())
-}
+}

+ 1 - 1
src/crypto/constants/sinsemilla.rs

@@ -212,4 +212,4 @@ mod tests {
 
 
         assert_eq!(two_pow_k * inv_two_pow_k, pallas::Base::one());
         assert_eq!(two_pow_k * inv_two_pow_k, pallas::Base::one());
     }
     }
-}
+}

+ 1 - 1
src/crypto/note.rs

@@ -140,4 +140,4 @@ mod tests {
         assert_eq!(note.value, note2.value);
         assert_eq!(note.value, note2.value);
         assert_eq!(note.token_id, note2.token_id);
         assert_eq!(note.token_id, note2.token_id);
     }
     }
-}
+}

+ 2 - 2
src/crypto/proof.rs

@@ -112,8 +112,8 @@ mod tests {
         crypto::{keypair::PublicKey, mint_proof::create_mint_proof},
         crypto::{keypair::PublicKey, mint_proof::create_mint_proof},
         zk::circuit::MintContract,
         zk::circuit::MintContract,
     };
     };
-    use rand::rngs::OsRng;
     use group::ff::Field;
     use group::ff::Field;
+    use rand::rngs::OsRng;
 
 
     #[test]
     #[test]
     fn test_proof_serialization() -> Result<()> {
     fn test_proof_serialization() -> Result<()> {
@@ -144,4 +144,4 @@ mod tests {
 
 
         Ok(())
         Ok(())
     }
     }
-}
+}

+ 1 - 1
src/crypto/schnorr.rs

@@ -79,4 +79,4 @@ mod tests {
         let public = PublicKey::from_secret(secret);
         let public = PublicKey::from_secret(secret);
         assert!(public.verify(&message[..], &signature));
         assert!(public.verify(&message[..], &signature));
     }
     }
-}
+}

+ 2 - 2
src/node/wallet/cashierdb.rs

@@ -480,8 +480,8 @@ impl CashierDb {
 mod tests {
 mod tests {
     use super::*;
     use super::*;
     use crate::util::serial::serialize;
     use crate::util::serial::serialize;
-    use rand::rngs::OsRng;
     use group::ff::Field;
     use group::ff::Field;
+    use rand::rngs::OsRng;
 
 
     const WPASS: &str = "darkfi";
     const WPASS: &str = "darkfi";
 
 
@@ -573,4 +573,4 @@ mod tests {
 
 
         Ok(())
         Ok(())
     }
     }
-}
+}

+ 2 - 2
src/node/wallet/walletdb.rs

@@ -381,10 +381,10 @@ mod tests {
         merkle_node::MerkleNode,
         merkle_node::MerkleNode,
         types::{DrkCoinBlind, DrkSerial, DrkValueBlind},
         types::{DrkCoinBlind, DrkSerial, DrkValueBlind},
     };
     };
+    use group::ff::Field;
     use incrementalmerkletree::{Frontier, Tree};
     use incrementalmerkletree::{Frontier, Tree};
     use pasta_curves::pallas;
     use pasta_curves::pallas;
     use rand::rngs::OsRng;
     use rand::rngs::OsRng;
-    use group::ff::Field;
 
 
     const WPASS: &str = "darkfi";
     const WPASS: &str = "darkfi";
 
 
@@ -500,4 +500,4 @@ mod tests {
 
 
         Ok(())
         Ok(())
     }
     }
-}
+}