Skip to content

Commit a42f357

Browse files
committed
upstream: canonicalize prefixed ISUPPORT parameters
Looks better than having everything upper-case, and is less likely to confuse clients.
1 parent 904a54d commit a42f357

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

upstream.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -999,7 +999,12 @@ func (uc *upstreamConn) handleMessage(ctx context.Context, msg *irc.Message) err
999999
} else {
10001000
parameter, value, hasValue = strings.Cut(token, "=")
10011001
}
1002-
parameter = strings.ToUpper(parameter)
1002+
1003+
if prefix, key, ok := strings.Cut(parameter, "/"); ok {
1004+
parameter = strings.ToLower(prefix) + "/" + strings.ToUpper(key)
1005+
} else {
1006+
parameter = strings.ToUpper(parameter)
1007+
}
10031008
value = xirc.DecodeIsupportValue(value)
10041009

10051010
if hasValue {
@@ -1042,7 +1047,7 @@ func (uc *upstreamConn) handleMessage(ctx context.Context, msg *irc.Message) err
10421047
} else {
10431048
uc.availableMemberships = stdMemberships
10441049
}
1045-
case "SOJU.IM/SAFERATE":
1050+
case "soju.im/SAFERATE":
10461051
uc.rateLimit = negate
10471052
}
10481053
if err != nil {

0 commit comments

Comments
 (0)