xS: fix multiple old porting errors

This commit is contained in:
2026-07-21 17:03:14 +02:00
parent 60a14b6683
commit 49e76b49de
+13 -10
View File
@@ -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),
}