Changeset 675 in code


Ignore:
Timestamp:
Nov 8, 2021, 5:11:24 PM (4 years ago)
Author:
contact
Message:

Plumb context in downstreamConn.handleMessageRegistered

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

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/downstream.go

    r672 r675  
    13361336        ch := net.channels.Value(target)
    13371337
    1338         ctx, cancel := context.WithTimeout(context.TODO(), messageStoreTimeout)
     1338        ctx, cancel := context.WithTimeout(context.TODO(), backlogTimeout)
    13391339        defer cancel()
    13401340
     
    13941394
    13951395func (dc *downstreamConn) handleMessageRegistered(msg *irc.Message) error {
     1396        ctx, cancel := context.WithTimeout(context.TODO(), handleDownstreamMessageTimeout)
     1397        defer cancel()
     1398
    13961399        switch msg.Command {
    13971400        case "CAP":
     
    14691472                        }
    14701473                        n.Nick = nick
    1471                         err = dc.srv.db.StoreNetwork(context.TODO(), dc.user.ID, &n.Network)
     1474                        err = dc.srv.db.StoreNetwork(ctx, dc.user.ID, &n.Network)
    14721475                })
    14731476                if err != nil {
     
    15191522
    15201523                                n.Realname = storeRealname
    1521                                 if err := dc.srv.db.StoreNetwork(context.TODO(), dc.user.ID, &n.Network); err != nil {
     1524                                if err := dc.srv.db.StoreNetwork(ctx, dc.user.ID, &n.Network); err != nil {
    15221525                                        dc.logger.Printf("failed to store network realname: %v", err)
    15231526                                        storeErr = err
     
    16081611                                uc.network.channels.SetValue(upstreamName, ch)
    16091612                        }
    1610                         if err := dc.srv.db.StoreChannel(context.TODO(), uc.network.ID, ch); err != nil {
     1613                        if err := dc.srv.db.StoreChannel(ctx, uc.network.ID, ch); err != nil {
    16111614                                dc.logger.Printf("failed to create or update channel %q: %v", upstreamName, err)
    16121615                        }
     
    16401643                                        uc.network.channels.SetValue(upstreamName, ch)
    16411644                                }
    1642                                 if err := dc.srv.db.StoreChannel(context.TODO(), uc.network.ID, ch); err != nil {
     1645                                if err := dc.srv.db.StoreChannel(ctx, uc.network.ID, ch); err != nil {
    16431646                                        dc.logger.Printf("failed to create or update channel %q: %v", upstreamName, err)
    16441647                                }
     
    21692172
    21702173                        if msg.Command == "PRIVMSG" && uc.network.casemap(upstreamName) == "nickserv" {
    2171                                 dc.handleNickServPRIVMSG(uc, text)
     2174                                dc.handleNickServPRIVMSG(ctx, uc, text)
    21722175                        }
    21732176
     
    23432346
    23442347                eventPlayback := dc.caps["draft/event-playback"]
    2345 
    2346                 ctx, cancel := context.WithTimeout(context.TODO(), messageStoreTimeout)
    2347                 defer cancel()
    23482348
    23492349                var history []*irc.Message
     
    25462546}
    25472547
    2548 func (dc *downstreamConn) handleNickServPRIVMSG(uc *upstreamConn, text string) {
     2548func (dc *downstreamConn) handleNickServPRIVMSG(ctx context.Context, uc *upstreamConn, text string) {
    25492549        username, password, ok := parseNickServCredentials(text, uc.nick)
    25502550        if !ok {
     
    25632563        n.SASL.Plain.Username = username
    25642564        n.SASL.Plain.Password = password
    2565         if err := dc.srv.db.StoreNetwork(context.TODO(), dc.user.ID, &n.Network); err != nil {
     2565        if err := dc.srv.db.StoreNetwork(ctx, dc.user.ID, &n.Network); err != nil {
    25662566                dc.logger.Printf("failed to save NickServ credentials: %v", err)
    25672567        }
  • trunk/server.go

    r670 r675  
    2626var upstreamMessageDelay = 2 * time.Second
    2727var upstreamMessageBurst = 10
    28 var messageStoreTimeout = 10 * time.Second
     28var backlogTimeout = 10 * time.Second
     29var handleDownstreamMessageTimeout = 10 * time.Second
    2930var chatHistoryLimit = 1000
    3031var backlogLimit = 4000
Note: See TracChangeset for help on using the changeset viewer.