fix: correlate downstream receipts with submit responses

This commit is contained in:
hectorzhao
2026-07-14 16:22:41 +08:00
parent 135b4fd24e
commit 1ce02ef206
12 changed files with 487 additions and 91 deletions
+7 -2
View File
@@ -39,7 +39,8 @@ type Packet struct {
type Response struct {
*Packet
Packer
SeqId uint32
SeqId uint32
AfterSend func(error)
}
type Handler interface {
@@ -420,7 +421,11 @@ func (c *conn) serve() {
}
_, err = c.server.Handler.ServeCmpp(r, r.Packet, c.server.ErrorLog)
if err1 := c.finishPacket(r); err1 != nil {
err1 := c.finishPacket(r)
if r.AfterSend != nil {
r.AfterSend(err1)
}
if err1 != nil {
c.server.ErrorLog.Printf(
"send response packet failed remote=%v protocol=%s packet_type=%T seq=%d err_type=%T err=%v",
c.Conn.RemoteAddr(), c.Conn.Typ, r.Packer, r.SeqId, err1, err1,