Changeset 46 in code for trunk/downstream.go
- Timestamp:
- Feb 7, 2020, 12:08:27 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/downstream.go
r45 r46 247 247 uc.messages <- msg 248 248 }) 249 case "MODE": 250 var name string 251 if err := parseMessageParams(msg, &name); err != nil { 252 return err 253 } 254 255 var modeStr string 256 if len(msg.Params) > 1 { 257 modeStr = msg.Params[1] 258 } 259 260 if msg.Prefix.Name != name { 261 ch, err := c.user.getChannel(name) 262 if err != nil { 263 return err 264 } 265 266 if modeStr != "" { 267 ch.conn.messages <- msg 268 } else { 269 c.messages <- &irc.Message{ 270 Prefix: c.srv.prefix(), 271 Command: irc.RPL_CHANNELMODEIS, 272 Params: []string{ch.Name, string(ch.modes)}, 273 } 274 } 275 } else { 276 if name != c.nick { 277 return ircError{&irc.Message{ 278 Command: irc.ERR_USERSDONTMATCH, 279 Params: []string{c.nick, "Cannot change mode for other users"}, 280 }} 281 } 282 283 if modeStr != "" { 284 c.user.forEachUpstream(func(uc *upstreamConn) { 285 uc.messages <- msg 286 }) 287 } else { 288 c.messages <- &irc.Message{ 289 Prefix: c.srv.prefix(), 290 Command: irc.RPL_UMODEIS, 291 Params: []string{""}, // TODO 292 } 293 } 294 } 249 295 default: 250 296 c.logger.Printf("unhandled message: %v", msg)
Note:
See TracChangeset
for help on using the changeset viewer.