xS: fix multiple old porting errors
This commit is contained in:
@@ -1126,7 +1126,9 @@ func (c *client) sendLUSERS() {
|
||||
|
||||
nChannels := 0
|
||||
for _, ch := range channels {
|
||||
if 0 != ch.modes&ircChanModeSecret {
|
||||
if 0 == ch.modes&ircChanModeSecret {
|
||||
nChannels++
|
||||
} else if _, present := ch.userModes[c]; present {
|
||||
nChannels++
|
||||
}
|
||||
}
|
||||
@@ -1440,7 +1442,7 @@ func ircHandleUSER(msg *message, c *client) {
|
||||
c.realname = realname
|
||||
|
||||
c.mode = 0
|
||||
if m, err := strconv.ParseUint(mode, 10, 32); err != nil {
|
||||
if m, err := strconv.ParseUint(mode, 10, 32); err == nil {
|
||||
if 0 != m&4 {
|
||||
c.mode |= ircUserModeRxWallops
|
||||
}
|
||||
@@ -1494,7 +1496,7 @@ func ircHandleLUSERS(msg *message, c *client) {
|
||||
|
||||
func ircHandleMOTD(msg *message, c *client) {
|
||||
if len(msg.params) > 0 && !ircIsThisMe(msg.params[0]) {
|
||||
c.sendReply(ERR_NOSUCHSERVER, msg.params[1])
|
||||
c.sendReply(ERR_NOSUCHSERVER, msg.params[0])
|
||||
return
|
||||
}
|
||||
c.sendMOTD()
|
||||
@@ -1868,9 +1870,9 @@ func (mp *modeProcessor) step(modeChar byte) bool {
|
||||
case 'b':
|
||||
mp.doList(&mp.ch.banList, RPL_BANLIST, RPL_ENDOFBANLIST)
|
||||
case 'e':
|
||||
mp.doList(&mp.ch.banList, RPL_EXCEPTLIST, RPL_ENDOFEXCEPTLIST)
|
||||
mp.doList(&mp.ch.exceptionList, RPL_EXCEPTLIST, RPL_ENDOFEXCEPTLIST)
|
||||
case 'I':
|
||||
mp.doList(&mp.ch.banList, RPL_INVITELIST, RPL_ENDOFINVITELIST)
|
||||
mp.doList(&mp.ch.inviteList, RPL_INVITELIST, RPL_ENDOFINVITELIST)
|
||||
|
||||
case 'k':
|
||||
mp.doKey()
|
||||
@@ -2373,7 +2375,7 @@ func ircHandleTOPIC(msg *message, c *client) {
|
||||
}
|
||||
|
||||
ch.topic = msg.params[1]
|
||||
ch.topicWho = fmt.Sprintf("%s@%s@%s", c.nickname, c.username, c.hostname)
|
||||
ch.topicWho = fmt.Sprintf("%s!%s@%s", c.nickname, c.username, c.hostname)
|
||||
ch.topicTime = time.Now()
|
||||
|
||||
message := fmt.Sprintf(":%s!%s@%s TOPIC %s :%s",
|
||||
@@ -2397,7 +2399,7 @@ func ircTryPart(c *client, channelName string, reason string) {
|
||||
return
|
||||
}
|
||||
|
||||
message := fmt.Sprintf(":%s@%s@%s PART %s :%s",
|
||||
message := fmt.Sprintf(":%s!%s@%s PART %s :%s",
|
||||
c.nickname, c.username, c.hostname, channelName, reason)
|
||||
if 0 == ch.modes&ircChanModeQuiet {
|
||||
ircChannelMulticast(ch, message, nil)
|
||||
@@ -2454,7 +2456,7 @@ func ircTryKick(c *client, channelName, nick, reason string) {
|
||||
return
|
||||
}
|
||||
|
||||
message := fmt.Sprintf(":%s@%s@%s KICK %s %s :%s",
|
||||
message := fmt.Sprintf(":%s!%s@%s KICK %s %s :%s",
|
||||
c.nickname, c.username, c.hostname, channelName, nick, reason)
|
||||
if 0 == ch.modes&ircChanModeQuiet {
|
||||
ircChannelMulticast(ch, message, nil)
|
||||
@@ -2485,7 +2487,7 @@ func ircHandleKICK(msg *message, c *client) {
|
||||
ircTryKick(c, targetChannels[0], targetUsers[i], reason)
|
||||
}
|
||||
} else {
|
||||
for i := 0; i < len(channels) && i < len(targetUsers); i++ {
|
||||
for i := 0; i < len(targetChannels) && i < len(targetUsers); i++ {
|
||||
ircTryKick(c, targetChannels[i], targetUsers[i], reason)
|
||||
}
|
||||
}
|
||||
@@ -2560,7 +2562,7 @@ func ircTryJoin(c *client, channelName, key string) {
|
||||
}
|
||||
|
||||
_, invitedByChanop := c.invites[ircToCanon(channelName)]
|
||||
if 0 != ch.modes&ircChanModeInviteOnly && c.inMaskList(ch.inviteList) &&
|
||||
if 0 != ch.modes&ircChanModeInviteOnly && !c.inMaskList(ch.inviteList) &&
|
||||
!invitedByChanop {
|
||||
c.sendReply(ERR_INVITEONLYCHAN, channelName)
|
||||
return
|
||||
@@ -3113,6 +3115,7 @@ func processOneEvent() {
|
||||
capVersion: 301,
|
||||
opened: time.Now(),
|
||||
lastActive: time.Now(),
|
||||
invites: map[string]bool{},
|
||||
// TODO: Make this configurable and more fine-grained.
|
||||
antiflood: newFloodDetector(10*time.Second, 20),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user