commit 8828195
Hubert Hirtz
·
2020-11-20 18:27:59 +0000 UTC
parent cf5d743
Only send the SelfJoinEvent when channel info is complete
1 files changed,
+9,
-1
+9,
-1
1@@ -117,6 +117,8 @@ type Channel struct {
2 TopicWho *Prefix
3 TopicTime time.Time
4 Secret bool
5+
6+ complete bool
7 }
8
9 type SessionParams struct {
10@@ -701,7 +703,6 @@ func (s *Session) handle(msg Message) (err error) {
11 Name: msg.Params[0],
12 Members: map[*User]string{},
13 }
14- s.evts <- SelfJoinEvent{Channel: msg.Params[0]}
15 } else if c, ok := s.channels[channelCf]; ok {
16 if _, ok := s.users[nickCf]; !ok {
17 s.users[nickCf] = &User{Name: msg.Prefix.Copy()}
18@@ -803,6 +804,13 @@ func (s *Session) handle(msg Message) (err error) {
19
20 s.channels[channelCf] = c
21 }
22+ case rplEndofnames:
23+ channelCf := s.Casemap(msg.Params[1])
24+ if c, ok := s.channels[channelCf]; ok && !c.complete {
25+ c.complete = true
26+ s.channels[channelCf] = c
27+ s.evts <- SelfJoinEvent{Channel: c.Name}
28+ }
29 case rplTopic:
30 channelCf := s.Casemap(msg.Params[1])
31 if c, ok := s.channels[channelCf]; ok {