diff --git a/irc/config.go b/irc/config.go index 272b91bc..c19bf157 100644 --- a/irc/config.go +++ b/irc/config.go @@ -529,8 +529,11 @@ func LoadConfig(filename string) (config *Config, err error) { } config.Server.WebIRC = newWebIRC // process limits - if config.Limits.LineLen.Tags < 512 || config.Limits.LineLen.Rest < 512 { - return nil, ErrLineLengthsTooSmall + if config.Limits.LineLen.Tags < 512 { + config.Limits.LineLen.Tags = 512 + } + if config.Limits.LineLen.Rest < 512 { + config.Limits.LineLen.Rest = 512 } var newLogConfigs []logger.LoggingConfig for _, logConfig := range config.Logging { diff --git a/irc/server.go b/irc/server.go index 0eda3a7a..bd396032 100644 --- a/irc/server.go +++ b/irc/server.go @@ -693,6 +693,13 @@ func (server *Server) applyConfig(config *Config, initial bool) (err error) { server.accounts.initVHostRequestQueue() } + // MaxLine + if config.Limits.LineLen.Tags != 512 || config.Limits.LineLen.Rest != 512 { + SupportedCapabilities.Enable(caps.MaxLine) + value := fmt.Sprintf("%d,%d", config.Limits.LineLen.Tags, config.Limits.LineLen.Rest) + CapValues.Set(caps.MaxLine, value) + } + // STS stsPreviouslyEnabled := oldConfig != nil && oldConfig.Server.STS.Enabled stsValue := config.Server.STS.Value()