Changeset 553 in code for trunk/upstream.go


Ignore:
Timestamp:
Jun 10, 2021, 9:17:00 AM (4 years ago)
Author:
greg
Message:

Forward user mode changes in single-upstream mode

References: https://todo.sr.ht/~emersion/soju/20

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/upstream.go

    r552 r553  
    673673                }
    674674
    675                 uc.forEachDownstreamByID(downstreamID, func (dc *downstreamConn) {
    676                         dc.SendMessage(&irc.Message {
    677                                 Prefix: uc.srv.prefix(),
     675                uc.forEachDownstreamByID(downstreamID, func(dc *downstreamConn) {
     676                        dc.SendMessage(&irc.Message{
     677                                Prefix:  uc.srv.prefix(),
    678678                                Command: msg.Command,
    679                                 Params: msg.Params,
     679                                Params:  msg.Params,
    680680                        })
    681681                })
     
    933933                                return fmt.Errorf("received MODE message for unknown nick %q", name)
    934934                        }
    935                         return uc.modes.Apply(modeStr)
    936                         // TODO: notify downstreams about user mode change?
     935
     936                        if err := uc.modes.Apply(modeStr); err != nil {
     937                                return err
     938                        }
     939
     940                        uc.forEachDownstream(func(dc *downstreamConn) {
     941                                if dc.upstream() == nil {
     942                                        return
     943                                }
     944
     945                                dc.SendMessage(msg)
     946                        })
    937947                } else { // channel mode change
    938948                        ch, err := uc.getChannel(name)
     
    983993                        return err
    984994                }
    985                 // TODO: send RPL_UMODEIS to downstream connections when applicable
     995
     996                uc.forEachDownstream(func(dc *downstreamConn) {
     997                        if dc.upstream() == nil {
     998                                return
     999                        }
     1000
     1001                        dc.SendMessage(msg)
     1002                })
    9861003        case irc.RPL_CHANNELMODEIS:
    9871004                var channel string
     
    14431460                }
    14441461
    1445                 uc.forEachDownstreamByID(downstreamID, func (dc *downstreamConn) {
    1446                         dc.SendMessage(&irc.Message {
    1447                                 Prefix: uc.srv.prefix(),
     1462                uc.forEachDownstreamByID(downstreamID, func(dc *downstreamConn) {
     1463                        dc.SendMessage(&irc.Message{
     1464                                Prefix:  uc.srv.prefix(),
    14481465                                Command: msg.Command,
    1449                                 Params: msg.Params,
     1466                                Params:  msg.Params,
    14501467                        })
    14511468                })
Note: See TracChangeset for help on using the changeset viewer.