commit fd39397
Hubert Hirtz
·
2020-11-23 15:37:55 +0000 UTC
parent 2992bd3
Don't forward outdated typing timeouts The channel might have been parted, or the user might have parted from the channel before receiving the timeout from Typings, thus causing a segfault.
1 files changed,
+10,
-2
+10,
-2
1@@ -498,12 +498,20 @@ func (s *Session) run() {
2 err = s.handleStart(msg)
3 }
4 case t, ok := <-s.typings.Stops():
5+ if !ok {
6+ break
7+ }
8+ u, ok := s.users[t.Name]
9+ if !ok {
10+ break
11+ }
12+ c, ok := s.channels[t.Target]
13 if !ok {
14 break
15 }
16 s.evts <- TagEvent{
17- User: s.users[t.Name].Name,
18- Target: s.channels[t.Target].Name,
19+ User: u.Name,
20+ Target: c.Name,
21 Typing: TypingDone,
22 Time: time.Now(),
23 }