Просмотр исходного кода

bin/ircd: fix typos & clean up

ghassmo 3 лет назад
Родитель
Сommit
88cb7a5068
2 измененных файлов с 24 добавлено и 37 удалено
  1. 9 14
      bin/ircd/src/irc/client.rs
  2. 15 23
      bin/ircd/src/irc/mod.rs

+ 9 - 14
bin/ircd/src/irc/client.rs

@@ -109,7 +109,11 @@ impl<C: AsyncRead + AsyncWrite + Send + Unpin + 'static> IrcClient<C> {
                     }
                 }
                 err = reader.read_line(&mut line).fuse() => {
-                    if let Err(e) = self.process_line(err, line).await {
+                    if let Err(e) = err {
+                        error!("[CLIENT {}] Read line error: {}", self.address, e);
+                        break
+                    }
+                    if let Err(e) = self.process_line(line).await {
                         error!("[CLIENT {}] Process line failed: {}",  self.address, e);
                         break
                     }
@@ -174,16 +178,7 @@ impl<C: AsyncRead + AsyncWrite + Send + Unpin + 'static> IrcClient<C> {
         Ok(())
     }
 
-    pub async fn process_line(
-        &mut self,
-        err: std::result::Result<usize, std::io::Error>,
-        line: String,
-    ) -> Result<()> {
-        if let Err(e) = err {
-            warn!("[CLIENT {}] Read line error: {}", self.address, e);
-            return Err(Error::ChannelStopped)
-        }
-
+    pub async fn process_line(&mut self, line: String) -> Result<()> {
         let irc_msg = match clean_input_line(line) {
             Ok(msg) => msg,
             Err(e) => {
@@ -278,7 +273,7 @@ impl<C: AsyncRead + AsyncWrite + Send + Unpin + 'static> IrcClient<C> {
             self.is_user_init = true;
         } else {
             // Close the connection
-            warn!("[IRC SERVER] Password is required");
+            warn!("[CLIENT {}] Password is required", self.address);
             return self.on_quit()
         }
         Ok(())
@@ -289,7 +284,7 @@ impl<C: AsyncRead + AsyncWrite + Send + Unpin + 'static> IrcClient<C> {
             self.is_pass_init = true
         } else {
             // Close the connection
-            warn!("[IRC SERVER] Password is not correct!");
+            warn!("[CLIENT {}] Password is not correct!", self.address);
             return self.on_quit()
         }
         Ok(())
@@ -515,7 +510,7 @@ impl<C: AsyncRead + AsyncWrite + Send + Unpin + 'static> IrcClient<C> {
             .notify_with_exclude(privmsg.clone(), &[self.subscription.get_id()])
             .await;
 
-        debug!(target: "ircd", "PRIVMSG to be sent: {:?}", privmsg);
+        info!("[P2P] Broadcast: {:?}", privmsg.to_string().trim());
         self.p2p.broadcast(privmsg).await?;
 
         Ok(())

+ 15 - 23
bin/ircd/src/irc/mod.rs

@@ -61,6 +61,7 @@ impl IrcServer {
     pub async fn start(&self, executor: Arc<Executor<'_>>) -> Result<()> {
         let (listener, acceptor) = self.setup_listener().await?;
         info!("[IRC SERVER] listening on {}", self.settings.irc_listen);
+
         loop {
             let (stream, peer_addr) = match listener.accept().await {
                 Ok((s, a)) => (s, a),
@@ -106,32 +107,23 @@ impl IrcServer {
         // New subscription
         let p2p_subscription = self.p2p_notifiers.clone().subscribe().await;
 
-        let privmsgs_buffer = self.privmsgs_buffer.clone();
-        let seen_msg_ids = self.seen_msg_ids.clone();
-        let auto_channels = self.auto_channels.clone();
-        let password = self.password.clone();
-        let configured_chans = self.configured_chans.clone();
-        let configured_contacts = self.configured_contacts.clone();
-        let p2p = self.p2p.clone();
-        let p2p_notifiers = self.p2p_notifiers.clone();
+        // New irc connection
+        let mut client = IrcClient::new(
+            writer,
+            peer_addr,
+            self.privmsgs_buffer.clone(),
+            self.seen_msg_ids.clone(),
+            self.password.clone(),
+            self.auto_channels.clone(),
+            self.configured_chans.clone(),
+            self.configured_contacts.clone(),
+            self.p2p.clone(),
+            self.p2p_notifiers.clone(),
+            p2p_subscription,
+        );
 
         executor
             .spawn(async move {
-                // New irc connection
-                let mut client = IrcClient::new(
-                    writer,
-                    peer_addr,
-                    privmsgs_buffer,
-                    seen_msg_ids,
-                    password,
-                    auto_channels,
-                    configured_chans,
-                    configured_contacts,
-                    p2p,
-                    p2p_notifiers,
-                    p2p_subscription,
-                );
-
                 client.listen(reader).await;
             })
             .detach();