Skip to content

fix OnHttpStreamDone OnHttpStreamDone 回调逻辑错误#18

Draft
007gzs wants to merge 4 commits intohigress-group:go-1.24from
007gzs:go-1.24
Draft

fix OnHttpStreamDone OnHttpStreamDone 回调逻辑错误#18
007gzs wants to merge 4 commits intohigress-group:go-1.24from
007gzs:go-1.24

Conversation

@007gzs
Copy link
Member

@007gzs 007gzs commented Oct 27, 2025

proxy-wasm#12
OnLog 部分目前没有回调函数暂时先不做处理

@lingma-agents
Copy link

lingma-agents bot commented Oct 27, 2025

修复 OnHttpStreamDone 回调逻辑错误

变更概述
  • 问题修复

    • 修正了 proxyOnDone 函数中对不同上下文类型(stream、httpStream 和 rootContext)的判断和处理顺序,确保 OnHttpStreamDone 能够被正确调用。
    • DefaultTcpContextDefaultHttpContext 中实现了缺失的 OnStreamDoneOnHttpStreamDone 方法,以提供默认的行为返回值为 true。
  • 重构

    • proxyOnDone 函数内部逻辑进行了重新组织,使代码更清晰易懂,并保持原有功能不变。
变更文件
文件路径 变更说明
proxywasm/​internal/​abi_​callback_​lifecycle.​go 修改了 proxyOnDone 函数,调整了上下文检查的顺序并增加了对 httpStreams 的处理,确保 OnHttpStreamDone 被正确调用。
proxywasm/types/context.go 在 DefaultTcpContext 和 DefaultHttpContext 结构体中添加了 OnStreamDone 和 OnHttpStreamDone 方法的默认实现。
时序图
sequenceDiagram
    participant P as Proxy
    participant C as Context
    P->>C: proxyOnDone(contextID)
    alt is stream context
        C-->>C: setActiveContextID
        C->>C: OnStreamDone()
    else is http stream context
        C-->>C: setActiveContextID
        C->>C: OnHttpStreamDone()
    else is root context
        C-->>C: setActiveContextID
        C->>C: OnPluginDone()
    end
Loading

💡 小贴士

与 lingma-agents 交流的方式

📜 直接回复评论
直接回复本条评论,lingma-agents 将自动处理您的请求。例如:

  • 在当前代码中添加详细的注释说明。

  • 请详细介绍一下你说的 LRU 改造方案,并使用伪代码加以说明。

📜 在代码行处标记
在文件的特定位置创建评论并 @lingma-agents。例如:

  • @lingma-agents 分析这个方法的性能瓶颈并提供优化建议。

  • @lingma-agents 对这个方法生成优化代码。

📜 在讨论中提问
在任何讨论中 @lingma-agents 来获取帮助。例如:

  • @lingma-agents 请总结上述讨论并提出解决方案。

  • @lingma-agents 请根据讨论内容生成优化代码。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant