Changeset 497 in code for trunk/user.go


Ignore:
Timestamp:
Apr 13, 2021, 4:15:30 PM (4 years ago)
Author:
contact
Message:

Store last internal msg ID in DB when detaching

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/user.go

    r495 r497  
    233233                return
    234234        }
     235
     236        net.user.logger.Printf("network %q: detaching channel %q", net.GetName(), ch.Name)
     237
    235238        ch.Detached = true
    236         net.user.logger.Printf("network %q: detaching channel %q", net.GetName(), ch.Name)
     239
     240        if net.user.msgStore != nil {
     241                nameCM := net.casemap(ch.Name)
     242                lastID, err := net.user.msgStore.LastMsgID(net, nameCM, time.Now())
     243                if err != nil {
     244                        net.user.logger.Printf("failed to get last message ID for channel %q: %v", ch.Name, err)
     245                }
     246                ch.DetachedInternalMsgID = lastID
     247        }
    237248
    238249        if net.conn != nil {
     
    256267                return
    257268        }
     269
     270        net.user.logger.Printf("network %q: attaching channel %q", net.GetName(), ch.Name)
     271
     272        detachedMsgID := ch.DetachedInternalMsgID
    258273        ch.Detached = false
    259         net.user.logger.Printf("network %q: attaching channel %q", net.GetName(), ch.Name)
     274        ch.DetachedInternalMsgID = ""
    260275
    261276        var uch *upstreamChannel
     
    277292                }
    278293
    279                 lastDelivered := net.delivered.LoadID(ch.Name, dc.clientName)
    280                 if lastDelivered == "" {
    281                         return
    282                 }
    283 
    284                 dc.sendTargetBacklog(net, ch.Name, lastDelivered)
     294                if detachedMsgID != "" {
     295                        dc.sendTargetBacklog(net, ch.Name, detachedMsgID)
     296                }
    285297        })
    286298}
Note: See TracChangeset for help on using the changeset viewer.