Changeset 34 in code for trunk/upstream.go
- Timestamp:
- Feb 7, 2020, 9:54:03 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/upstream.go
r33 r34 136 136 return newNeedMoreParamsError(msg.Command) 137 137 } 138 138 139 for _, ch := range strings.Split(msg.Params[0], ",") { 139 c.logger.Printf("joined channel %q", ch) 140 c.channels[ch] = &upstreamChannel{ 141 Name: ch, 142 Members: make(map[string]membership), 140 if msg.Prefix.Name == c.upstream.Nick { 141 c.logger.Printf("joined channel %q", ch) 142 c.channels[ch] = &upstreamChannel{ 143 Name: ch, 144 Members: make(map[string]membership), 145 } 146 } else { 147 ch, err := c.getChannel(ch) 148 if err != nil { 149 return err 150 } 151 ch.Members[msg.Prefix.Name] = 0 143 152 } 144 153 } 154 155 c.srv.lock.Lock() 156 for _, dc := range c.srv.downstreamConns { 157 dc.messages <- msg 158 } 159 c.srv.lock.Unlock() 160 case "PART": 161 if len(msg.Params) < 1 { 162 return newNeedMoreParamsError(msg.Command) 163 } 164 165 for _, ch := range strings.Split(msg.Params[0], ",") { 166 if msg.Prefix.Name == c.upstream.Nick { 167 c.logger.Printf("parted channel %q", ch) 168 delete(c.channels, ch) 169 } else { 170 ch, err := c.getChannel(ch) 171 if err != nil { 172 return err 173 } 174 delete(ch.Members, msg.Prefix.Name) 175 } 176 } 177 178 c.srv.lock.Lock() 179 for _, dc := range c.srv.downstreamConns { 180 dc.messages <- msg 181 } 182 c.srv.lock.Unlock() 145 183 case irc.RPL_TOPIC, irc.RPL_NOTOPIC: 146 184 if len(msg.Params) < 3 { … … 211 249 } 212 250 251 if ch.complete { 252 return fmt.Errorf("received unexpected RPL_ENDOFNAMES") 253 } 213 254 ch.complete = true 214 255
Note:
See TracChangeset
for help on using the changeset viewer.