make it easier to patch out the maximum line length

This commit is contained in:
Shivaram Lingamneni 2020-08-03 12:51:04 -04:00
parent 101e49bc03
commit 6a2fba9812
3 changed files with 10 additions and 8 deletions

View File

@ -27,6 +27,9 @@ import (
) )
const ( const (
// maximum line length not including tags; don't change this for a public server
MaxLineLen = 512
// IdentTimeout is how long before our ident (username) check times out. // IdentTimeout is how long before our ident (username) check times out.
IdentTimeout = time.Second + 500*time.Millisecond IdentTimeout = time.Second + 500*time.Millisecond
IRCv3TimestampFormat = utils.IRCv3TimestampFormat IRCv3TimestampFormat = utils.IRCv3TimestampFormat
@ -185,8 +188,8 @@ func (s *Session) EndMultilineBatch(label string) (batch MultilineBatch, err err
s.fakelag.Unsuspend() s.fakelag.Unsuspend()
// heuristics to estimate how much data they used while fakelag was suspended // heuristics to estimate how much data they used while fakelag was suspended
fakelagBill := (batch.lenBytes / 512) + 1 fakelagBill := (batch.lenBytes / MaxLineLen) + 1
fakelagBillLines := (batch.message.LenLines() * 60) / 512 fakelagBillLines := (batch.message.LenLines() * 60) / MaxLineLen
if fakelagBill < fakelagBillLines { if fakelagBill < fakelagBillLines {
fakelagBill = fakelagBillLines fakelagBill = fakelagBillLines
} }
@ -666,7 +669,7 @@ func (client *Client) run(session *Session) {
} }
} }
msg, err := ircmsg.ParseLineStrict(line, true, 512) msg, err := ircmsg.ParseLineStrict(line, true, MaxLineLen)
if err == ircmsg.ErrorLineIsEmpty { if err == ircmsg.ErrorLineIsEmpty {
continue continue
} else if err == ircmsg.ErrorLineTooLong { } else if err == ircmsg.ErrorLineTooLong {
@ -1198,11 +1201,11 @@ func (client *Client) Quit(message string, session *Session) {
// #364: don't send QUIT lines to unregistered clients // #364: don't send QUIT lines to unregistered clients
if client.registered { if client.registered {
quitMsg := ircmsg.MakeMessage(nil, client.nickMaskString, "QUIT", message) quitMsg := ircmsg.MakeMessage(nil, client.nickMaskString, "QUIT", message)
finalData, _ = quitMsg.LineBytesStrict(false, 512) finalData, _ = quitMsg.LineBytesStrict(false, MaxLineLen)
} }
errorMsg := ircmsg.MakeMessage(nil, "", "ERROR", message) errorMsg := ircmsg.MakeMessage(nil, "", "ERROR", message)
errorMsgBytes, _ := errorMsg.LineBytesStrict(false, 512) errorMsgBytes, _ := errorMsg.LineBytesStrict(false, MaxLineLen)
finalData = append(finalData, errorMsgBytes...) finalData = append(finalData, errorMsgBytes...)
sess.socket.SetFinalData(finalData) sess.socket.SetFinalData(finalData)
@ -1536,7 +1539,7 @@ func (session *Session) SendRawMessage(message ircmsg.IrcMessage, blocking bool)
} }
// assemble message // assemble message
line, err := message.LineBytesStrict(false, 512) line, err := message.LineBytesStrict(false, MaxLineLen)
if err != nil { if err != nil {
logline := fmt.Sprintf("Error assembling message for sending: %v\n%s", err, debug.Stack()) logline := fmt.Sprintf("Error assembling message for sending: %v\n%s", err, debug.Stack())
session.client.server.logger.Error("internal", logline) session.client.server.logger.Error("internal", logline)

View File

@ -107,7 +107,6 @@ func (te *ThrottleError) Error() string {
var ( var (
ErrDatastorePathMissing = errors.New("Datastore path missing") ErrDatastorePathMissing = errors.New("Datastore path missing")
ErrLimitsAreInsane = errors.New("Limits aren't setup properly, check them and make them sane") ErrLimitsAreInsane = errors.New("Limits aren't setup properly, check them and make them sane")
ErrLineLengthsTooSmall = errors.New("Line lengths must be 512 or greater (check the linelen section under server->limits)")
ErrLoggerExcludeEmpty = errors.New("Encountered logging type '-' with no type to exclude") ErrLoggerExcludeEmpty = errors.New("Encountered logging type '-' with no type to exclude")
ErrLoggerFilenameMissing = errors.New("Logging configuration specifies 'file' method but 'filename' is empty") ErrLoggerFilenameMissing = errors.New("Logging configuration specifies 'file' method but 'filename' is empty")
ErrLoggerHasNoTypes = errors.New("Logger has no types to log") ErrLoggerHasNoTypes = errors.New("Logger has no types to log")

View File

@ -13,7 +13,7 @@ import (
) )
const ( const (
maxReadQBytes = ircmsg.MaxlenTagsFromClient + 512 + 1024 maxReadQBytes = ircmsg.MaxlenTagsFromClient + MaxLineLen + 1024
) )
var ( var (