Changeset 350 in code for trunk/upstream.go


Ignore:
Timestamp:
Jul 6, 2020, 9:06:20 AM (5 years ago)
Author:
contact
Message:

Sort and split JOIN messages

Sort channels so that channels with a key appear first. Split JOIN
messages so that we don't reach the message size limit.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/upstream.go

    r343 r350  
    554554
    555555                if len(uc.network.channels) > 0 {
    556                         // TODO: split this into multiple messages if need be
    557                         var names, keys []string
     556                        var channels, keys []string
    558557                        for _, ch := range uc.network.channels {
    559                                 names = append(names, ch.Name)
     558                                channels = append(channels, ch.Name)
    560559                                keys = append(keys, ch.Key)
    561560                        }
    562                         uc.SendMessage(&irc.Message{
    563                                 Command: "JOIN",
    564                                 Params: []string{
    565                                         strings.Join(names, ","),
    566                                         strings.Join(keys, ","),
    567                                 },
    568                         })
     561
     562                        for _, msg := range join(channels, keys) {
     563                                uc.SendMessage(msg)
     564                        }
    569565                }
    570566        case irc.RPL_MYINFO:
Note: See TracChangeset for help on using the changeset viewer.