Changeset 760 in code
- Timestamp:
- Dec 9, 2021, 10:21:08 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/downstream.go
r758 r760 2 2 3 3 import ( 4 "bytes" 4 5 "context" 5 6 "crypto/tls" … … 276 277 server sasl.Server 277 278 plainUsername, plainPassword string 279 pendingResp bytes.Buffer 278 280 } 279 281 … … 967 969 dc.sasl = &downstreamSASL{server: server} 968 970 } else { 969 // TODO: multi-line messages 970 if msg.Params[0] == "+" { 971 resp = nil 972 } else if resp, err = base64.StdEncoding.DecodeString(msg.Params[0]); err != nil { 971 chunk := msg.Params[0] 972 if chunk == "+" { 973 chunk = "" 974 } 975 976 if dc.sasl.pendingResp.Len()+len(chunk) > 10*1024 { 977 return nil, ircError{&irc.Message{ 978 Prefix: dc.srv.prefix(), 979 Command: irc.ERR_SASLFAIL, 980 Params: []string{dc.nick, "Response too long"}, 981 }} 982 } 983 984 dc.sasl.pendingResp.WriteString(chunk) 985 986 if len(chunk) == 400 { 987 return nil, nil // Multi-line response, wait for the next command 988 } 989 990 resp, err = base64.StdEncoding.DecodeString(dc.sasl.pendingResp.String()) 991 if err != nil { 973 992 return nil, ircError{&irc.Message{ 974 993 Prefix: dc.srv.prefix(), … … 977 996 }} 978 997 } 998 999 dc.sasl.pendingResp.Reset() 979 1000 } 980 1001
Note:
See TracChangeset
for help on using the changeset viewer.