Changeset 462 in code for trunk/upstream.go


Ignore:
Timestamp:
Mar 15, 2021, 10:11:42 PM (4 years ago)
Author:
contact
Message:

Properly handle all ISUPPORT negations

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/upstream.go

    r461 r462  
    635635                        }
    636636
    637                         if !negate && hasValue {
    638                                 // TODO: reset to defaults when the token is negated
    639                                 switch parameter {
    640                                 case "CHANMODES":
    641                                         if err := uc.handleChanModes(value); err != nil {
    642                                                 return err
    643                                         }
    644                                 case "CHANTYPES":
     637                        var err error
     638                        switch parameter {
     639                        case "CHANMODES":
     640                                if !negate {
     641                                        err = uc.handleChanModes(value)
     642                                } else {
     643                                        uc.availableChannelModes = stdChannelModes
     644                                }
     645                        case "CHANTYPES":
     646                                if !negate {
    645647                                        uc.availableChannelTypes = value
    646                                 case "PREFIX":
    647                                         if err := uc.handleMemberships(value); err != nil {
    648                                                 return err
    649                                         }
     648                                } else {
     649                                        uc.availableChannelTypes = stdChannelTypes
    650650                                }
     651                        case "PREFIX":
     652                                if !negate {
     653                                        err = uc.handleMemberships(value)
     654                                } else {
     655                                        uc.availableMemberships = stdMemberships
     656                                }
     657                        }
     658                        if err != nil {
     659                                return err
    651660                        }
    652661                }
Note: See TracChangeset for help on using the changeset viewer.