Sfoglia il codice sorgente

bin/ircd: clip nicks with length more than MAXIMUM_LENGTH_OF_NICKNAME instead of skipping their msgs

Dastan-glitch 4 anni fa
parent
commit
51e67a0e0c
1 ha cambiato i file con 3 aggiunte e 3 eliminazioni
  1. 3 3
      bin/ircd/src/protocol_privmsg.rs

+ 3 - 3
bin/ircd/src/protocol_privmsg.rs

@@ -61,9 +61,10 @@ impl ProtocolPrivmsg {
 
 
         loop {
         loop {
             let msg = self.msg_sub.receive().await?;
             let msg = self.msg_sub.receive().await?;
+            let mut msg = (*msg).to_owned();
 
 
             if msg.nickname.len() > MAXIMUM_LENGTH_OF_NICKNAME {
             if msg.nickname.len() > MAXIMUM_LENGTH_OF_NICKNAME {
-                continue
+                msg.nickname = msg.nickname[..MAXIMUM_LENGTH_OF_NICKNAME].to_string();
             }
             }
 
 
             if self.msg_ids.lock().await.contains(&msg.id) {
             if self.msg_ids.lock().await.contains(&msg.id) {
@@ -71,14 +72,13 @@ impl ProtocolPrivmsg {
             }
             }
 
 
             self.msg_ids.lock().await.push(msg.id);
             self.msg_ids.lock().await.push(msg.id);
-            let msg = (*msg).clone();
 
 
             // add the msg to the buffer
             // add the msg to the buffer
             self.msgs.lock().await.push(msg.clone());
             self.msgs.lock().await.push(msg.clone());
 
 
             self.notify_queue_sender.send(msg.clone()).await?;
             self.notify_queue_sender.send(msg.clone()).await?;
 
 
-            self.p2p.broadcast_with_exclude(msg.clone(), &exclude_list).await?;
+            self.p2p.broadcast_with_exclude(msg, &exclude_list).await?;
         }
         }
     }
     }
 }
 }