1
0
Fork 0
forked from External/ergo
add validation for isupport tokens
This commit is contained in:
Shivaram Lingamneni 2018-12-30 17:26:39 -05:00
parent b34bab16a7
commit ba2aacaf5b
3 changed files with 57 additions and 9 deletions

View file

@ -147,7 +147,7 @@ func NewServer(config *Config, logger *logger.Manager) (*Server, error) {
}
// setISupport sets up our RPL_ISUPPORT reply.
func (server *Server) setISupport() {
func (server *Server) setISupport() (err error) {
maxTargetsString := strconv.Itoa(maxTargets)
config := server.Config()
@ -192,11 +192,15 @@ func (server *Server) setISupport() {
isupport.Add("REGCREDTYPES", "passphrase,certfp")
}
isupport.RegenerateCachedReply()
err = isupport.RegenerateCachedReply()
if err != nil {
return
}
server.configurableStateMutex.Lock()
server.isupport = isupport
server.configurableStateMutex.Unlock()
return
}
func loadChannelList(channel *Channel, list string, maskMode modes.Mode) {
@ -787,7 +791,10 @@ func (server *Server) applyConfig(config *Config, initial bool) (err error) {
// set RPL_ISUPPORT
var newISupportReplies [][]string
oldISupportList := server.ISupport()
server.setISupport()
err = server.setISupport()
if err != nil {
return err
}
if oldISupportList != nil {
newISupportReplies = oldISupportList.GetDifference(server.ISupport())
}