fix: The request header and the response header are different (#157)
diff --git a/internal/http/header.go b/internal/http/header.go
index e57eb12..bba3145 100644
--- a/internal/http/header.go
+++ b/internal/http/header.go
@@ -21,7 +21,6 @@
"net/http"
"github.com/api7/ext-plugin-proto/go/A6"
- hrc "github.com/api7/ext-plugin-proto/go/A6/HTTPReqCall"
flatbuffers "github.com/google/flatbuffers/go"
)
@@ -83,7 +82,7 @@
return h.hdr
}
-func (h *Header) Build(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
+func HeaderBuild(h *Header, builder *flatbuffers.Builder) []flatbuffers.UOffsetT {
var hdrs []flatbuffers.UOffsetT
// deleted
@@ -108,12 +107,5 @@
}
}
- size := len(hdrs)
- hrc.RewriteStartHeadersVector(builder, size)
- for i := size - 1; i >= 0; i-- {
- te := hdrs[i]
- builder.PrependUOffsetT(te)
- }
-
- return builder.EndVector(size)
+ return hdrs
}
diff --git a/internal/http/request.go b/internal/http/request.go
index 21295a3..5b965fa 100644
--- a/internal/http/request.go
+++ b/internal/http/request.go
@@ -215,7 +215,16 @@
var hdrVec, respHdrVec flatbuffers.UOffsetT
if r.hdr != nil {
- hdrVec = r.hdr.Build(builder)
+ hdrs := HeaderBuild(r.hdr, builder)
+
+ size := len(hdrs)
+ hrc.RewriteStartHeadersVector(builder, size)
+ for i := size - 1; i >= 0; i-- {
+ te := hdrs[i]
+ builder.PrependUOffsetT(te)
+ }
+
+ hdrVec = builder.EndVector(size)
}
if r.respHdr != nil {
diff --git a/internal/http/response.go b/internal/http/response.go
index c48fbaf..508481d 100644
--- a/internal/http/response.go
+++ b/internal/http/response.go
@@ -202,7 +202,16 @@
var hdrVec flatbuffers.UOffsetT
if r.hdr != nil {
- hdrVec = r.hdr.Build(builder)
+ hdrs := HeaderBuild(r.hdr, builder)
+
+ size := len(hdrs)
+ hrc.RespStartHeadersVector(builder, size)
+ for i := size - 1; i >= 0; i-- {
+ te := hdrs[i]
+ builder.PrependUOffsetT(te)
+ }
+
+ hdrVec = builder.EndVector(size)
}
var bodyVec flatbuffers.UOffsetT