فهرست منبع

darkirc: fix getting NAMES list of history msgs

dasman 2 سال پیش
والد
کامیت
49716b3e4c
1فایلهای تغییر یافته به همراه10 افزوده شده و 5 حذف شده
  1. 10 5
      bin/darkirc/src/irc/command.rs

+ 10 - 5
bin/darkirc/src/irc/command.rs

@@ -928,11 +928,20 @@ impl Client {
         let mut channels = HashSet::new();
         let mut channels = HashSet::new();
 
 
         // If we have any configured autojoin channels, let's join the user
         // If we have any configured autojoin channels, let's join the user
-        // and set their topics, if any. And request NAMES list.
+        // and set their topics, if any.
         if !*self.caps.read().await.get("no-autojoin").unwrap() {
         if !*self.caps.read().await.get("no-autojoin").unwrap() {
             for channel in self.server.autojoin.read().await.iter() {
             for channel in self.server.autojoin.read().await.iter() {
                 replies.extend(self.handle_cmd_join(channel, false).await.unwrap());
                 replies.extend(self.handle_cmd_join(channel, false).await.unwrap());
+                channels.insert(channel.to_string());
+            }
+        }
+
+        // Potentially extend the replies with channel history
+        replies.extend(self.get_history(&channels).await.unwrap());
 
 
+        // And request NAMES list.
+        if !*self.caps.read().await.get("no-autojoin").unwrap() {
+            for channel in self.server.autojoin.read().await.iter() {
                 if let Some(chan) = self.server.channels.read().await.get(channel) {
                 if let Some(chan) = self.server.channels.read().await.get(channel) {
                     let nicks: Vec<String> = chan.nicks.iter().cloned().collect();
                     let nicks: Vec<String> = chan.nicks.iter().cloned().collect();
 
 
@@ -946,13 +955,9 @@ impl Client {
                     RPL_ENDOFNAMES,
                     RPL_ENDOFNAMES,
                     format!("{} {} :End of NAMES list", nick, channel),
                     format!("{} {} :End of NAMES list", nick, channel),
                 )));
                 )));
-                channels.insert(channel.to_string());
             }
             }
         }
         }
 
 
-        // Potentially extend the replies with channel history
-        replies.extend(self.get_history(&channels).await.unwrap());
-
         replies
         replies
     }
     }