Properly handle all ISUPPORT negations
This commit is contained in:
parent
62d4bf2813
commit
3f005d481d
35
upstream.go
35
upstream.go
@ -634,20 +634,29 @@ func (uc *upstreamConn) handleMessage(msg *irc.Message) error {
|
|||||||
delete(uc.isupport, parameter)
|
delete(uc.isupport, parameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !negate && hasValue {
|
var err error
|
||||||
// TODO: reset to defaults when the token is negated
|
switch parameter {
|
||||||
switch parameter {
|
case "CHANMODES":
|
||||||
case "CHANMODES":
|
if !negate {
|
||||||
if err := uc.handleChanModes(value); err != nil {
|
err = uc.handleChanModes(value)
|
||||||
return err
|
} else {
|
||||||
}
|
uc.availableChannelModes = stdChannelModes
|
||||||
case "CHANTYPES":
|
|
||||||
uc.availableChannelTypes = value
|
|
||||||
case "PREFIX":
|
|
||||||
if err := uc.handleMemberships(value); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
case "CHANTYPES":
|
||||||
|
if !negate {
|
||||||
|
uc.availableChannelTypes = value
|
||||||
|
} else {
|
||||||
|
uc.availableChannelTypes = stdChannelTypes
|
||||||
|
}
|
||||||
|
case "PREFIX":
|
||||||
|
if !negate {
|
||||||
|
err = uc.handleMemberships(value)
|
||||||
|
} else {
|
||||||
|
uc.availableMemberships = stdMemberships
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case "BATCH":
|
case "BATCH":
|
||||||
|
Loading…
Reference in New Issue
Block a user