Add context to upstreamConn.handleMessage

This commit is contained in:
Simon Ser 2021-12-02 23:27:12 +01:00
parent a413681253
commit 04b0c2fd6b
2 changed files with 8 additions and 8 deletions

View file

@ -412,7 +412,7 @@ func (uc *upstreamConn) parseMembershipPrefix(s string) (ms *memberships, nick s
return &memberships, s[i:] return &memberships, s[i:]
} }
func (uc *upstreamConn) handleMessage(msg *irc.Message) error { func (uc *upstreamConn) handleMessage(ctx context.Context, msg *irc.Message) error {
var label string var label string
if l, ok := msg.GetTag("label"); ok { if l, ok := msg.GetTag("label"); ok {
label = l label = l
@ -491,7 +491,7 @@ func (uc *upstreamConn) handleMessage(msg *irc.Message) error {
ch := uc.network.channels.Value(target) ch := uc.network.channels.Value(target)
if ch != nil && msg.Command != "TAGMSG" { if ch != nil && msg.Command != "TAGMSG" {
if ch.Detached { if ch.Detached {
uc.handleDetachedMessage(ch, msg) uc.handleDetachedMessage(ctx, ch, msg)
} }
highlight := uc.network.isHighlight(msg) highlight := uc.network.isHighlight(msg)
@ -662,7 +662,7 @@ func (uc *upstreamConn) handleMessage(msg *irc.Message) error {
if dc, _ := uc.dequeueCommand("AUTHENTICATE"); dc != nil && dc.sasl != nil { if dc, _ := uc.dequeueCommand("AUTHENTICATE"); dc != nil && dc.sasl != nil {
if msg.Command == irc.RPL_SASLSUCCESS { if msg.Command == irc.RPL_SASLSUCCESS {
uc.network.autoSaveSASLPlain(context.TODO(), dc.sasl.plainUsername, dc.sasl.plainPassword) uc.network.autoSaveSASLPlain(ctx, dc.sasl.plainUsername, dc.sasl.plainPassword)
} }
dc.endSASL(msg) dc.endSASL(msg)
@ -684,7 +684,7 @@ func (uc *upstreamConn) handleMessage(msg *irc.Message) error {
if err := parseMessageParams(cmd, nil, nil, &password); err != nil { if err := parseMessageParams(cmd, nil, nil, &password); err != nil {
return err return err
} }
uc.network.autoSaveSASLPlain(context.TODO(), account, password) uc.network.autoSaveSASLPlain(ctx, account, password)
} }
dc.SendMessage(msg) dc.SendMessage(msg)
@ -1715,7 +1715,7 @@ func (uc *upstreamConn) handleMessage(msg *irc.Message) error {
return nil return nil
} }
func (uc *upstreamConn) handleDetachedMessage(ch *Channel, msg *irc.Message) { func (uc *upstreamConn) handleDetachedMessage(ctx context.Context, ch *Channel, msg *irc.Message) {
if uc.network.detachedMessageNeedsRelay(ch, msg) { if uc.network.detachedMessageNeedsRelay(ch, msg) {
uc.forEachDownstream(func(dc *downstreamConn) { uc.forEachDownstream(func(dc *downstreamConn) {
dc.relayDetachedMessage(uc.network, msg) dc.relayDetachedMessage(uc.network, msg)
@ -1723,7 +1723,7 @@ func (uc *upstreamConn) handleDetachedMessage(ch *Channel, msg *irc.Message) {
} }
if ch.ReattachOn == FilterMessage || (ch.ReattachOn == FilterHighlight && uc.network.isHighlight(msg)) { if ch.ReattachOn == FilterMessage || (ch.ReattachOn == FilterHighlight && uc.network.isHighlight(msg)) {
uc.network.attach(ch) uc.network.attach(ch)
if err := uc.srv.db.StoreChannel(context.TODO(), uc.network.ID, ch); err != nil { if err := uc.srv.db.StoreChannel(ctx, uc.network.ID, ch); err != nil {
uc.logger.Printf("failed to update channel %q: %v", ch.Name, err) uc.logger.Printf("failed to update channel %q: %v", ch.Name, err)
} }
} }
@ -1914,7 +1914,7 @@ func (uc *upstreamConn) runUntilRegistered() error {
return fmt.Errorf("failed to read message: %v", err) return fmt.Errorf("failed to read message: %v", err)
} }
if err := uc.handleMessage(msg); err != nil { if err := uc.handleMessage(context.TODO(), msg); err != nil {
if _, ok := err.(registrationError); ok { if _, ok := err.(registrationError); ok {
return err return err
} else { } else {

View file

@ -611,7 +611,7 @@ func (u *user) run() {
uc.logger.Printf("ignoring message on closed connection: %v", msg) uc.logger.Printf("ignoring message on closed connection: %v", msg)
break break
} }
if err := uc.handleMessage(msg); err != nil { if err := uc.handleMessage(context.TODO(), msg); err != nil {
uc.logger.Printf("failed to handle message %q: %v", msg, err) uc.logger.Printf("failed to handle message %q: %v", msg, err)
} }
case eventChannelDetach: case eventChannelDetach: