Skip to content

Commit 015cdb2

Browse files
committed
safe
1 parent 185a1d0 commit 015cdb2

4 files changed

Lines changed: 30 additions & 18 deletions

File tree

go/delay.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ func (p *delayFilterFactory) Create(handle shared.HttpFilterHandle) shared.HttpF
3535
return &delayFilter{handle: handle}
3636
}
3737

38+
// OnDestroy implements [shared.HttpFilterFactory].
39+
func (p *delayFilterFactory) OnDestroy() {}
40+
3841
// OnRequestHeaders implements [shared.HttpFilter].
3942
func (p *delayFilter) OnRequestHeaders(headers shared.HeaderMap, endOfStream bool) shared.HeadersStatus {
4043
// Check if the headers contain the "do-delay" header to trigger the delay.

go/header_auth.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,17 @@ func (p *headerAuthFilterFactory) Create(handle shared.HttpFilterHandle) shared.
3636
return &headerAuthFilter{handle: handle, authHeaderName: p.authHeaderName}
3737
}
3838

39+
// OnDestroy implements [shared.HttpFilterFactory].
40+
func (p *headerAuthFilterFactory) OnDestroy() {}
41+
3942
// OnRequestHeaders implements [shared.HttpFilter].
4043
func (p *headerAuthFilter) OnRequestHeaders(headers shared.HeaderMap, endOfStream bool) shared.HeadersStatus {
4144
v := headers.GetOne(p.authHeaderName)
42-
if v == "" {
45+
if v.Len == 0 {
4346
p.handle.SendLocalResponse(http.StatusUnauthorized, [][2]string{{"Content-Type", "text/plain"}}, []byte("Unauthorized by Go Module at on_request_headers\n"), "unauthorized")
4447
return shared.HeadersStatusStop
4548
}
46-
p.sendOnResponseHeaderPhase = v == "on_response_headers"
49+
p.sendOnResponseHeaderPhase = v.ToString() == "on_response_headers"
4750
return shared.HeadersStatusContinue
4851
}
4952

go/javascript.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ func (p *javaScriptFilterConfigFactory) Create(handle shared.HttpFilterConfigHan
6161
return c, nil
6262
}
6363

64+
// OnDestroy implements [shared.HttpFilterFactory].
65+
func (p *javaScriptFilterFactory) OnDestroy() {}
66+
6467
// Create implements [shared.HttpFilterFactory].
6568
func (p *javaScriptFilterFactory) Create(handle shared.HttpFilterHandle) shared.HttpFilter {
6669
vm := p.vms[rand.Intn(numberOfVMPool)]
@@ -122,7 +125,7 @@ func newJavaScriptVM(script string, w io.Writer) (*javaScriptVM, error) {
122125
// OnRequestHeaders implements [shared.HttpFilter].
123126
func (p *javaScriptFilter) OnRequestHeaders(headers shared.HeaderMap, _ bool) shared.HeadersStatus {
124127
for _, header := range headers.GetAll() {
125-
p.requestHeaders[header[0]] = header[1]
128+
p.requestHeaders[header[0].ToString()] = header[1].ToString()
126129
}
127130
p.vm.mux.Lock()
128131
defer p.vm.mux.Unlock()
@@ -155,7 +158,7 @@ func (p *javaScriptFilter) OnRequestHeaders(headers shared.HeaderMap, _ bool) sh
155158
// OnResponseHeaders implements [shared.HttpFilter].
156159
func (p *javaScriptFilter) OnResponseHeaders(headers shared.HeaderMap, _ bool) shared.HeadersStatus {
157160
for _, header := range headers.GetAll() {
158-
p.responseHeaders[header[0]] = header[1]
161+
p.responseHeaders[header[0].ToString()] = header[1].ToString()
159162
}
160163
p.vm.mux.Lock()
161164
defer p.vm.mux.Unlock()

go/passthrough.go

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,23 @@ func (p *passthroughFilterFactory) Create(handle shared.HttpFilterHandle) shared
3030
return &passthroughFilter{handle: handle}
3131
}
3232

33+
// OnDestroy implements [shared.HttpFilterFactory].
34+
func (p *passthroughFilterFactory) OnDestroy() {}
35+
3336
// OnRequestHeaders implements [shared.HttpFilter].
3437
func (p *passthroughFilter) OnRequestHeaders(headers shared.HeaderMap, endOfStream bool) shared.HeadersStatus {
3538
fooValue := headers.GetOne("foo")
36-
fmt.Printf("gosdk: RequestHeaders, foo: %v\n", fooValue)
39+
fmt.Printf("gosdk: RequestHeaders, foo: %v\n", fooValue.ToString())
3740
fmt.Printf("gosdk: RequestHeaders, endOfStream: %v\n", endOfStream)
3841
for _, header := range headers.GetAll() {
39-
fmt.Printf("gosdk: RequestHeaders, header: %s: %s\n", header[0], header[1])
42+
fmt.Printf("gosdk: RequestHeaders, header: %s: %s\n", header[0].ToString(), header[1].ToString())
4043
}
4144
sourceAddr, _ := p.handle.GetAttributeString(shared.AttributeIDSourceAddress)
4245
destAddr, _ := p.handle.GetAttributeString(shared.AttributeIDDestinationAddress)
4346
protocol, _ := p.handle.GetAttributeString(shared.AttributeIDRequestProtocol)
44-
fmt.Printf("gosdk: RequestHeaders, source address: %s\n", sourceAddr)
45-
fmt.Printf("gosdk: RequestHeaders, destination address: %s\n", destAddr)
46-
fmt.Printf("gosdk: RequestHeaders, request protocol: %s\n", protocol)
47+
fmt.Printf("gosdk: RequestHeaders, source address: %s\n", sourceAddr.ToString())
48+
fmt.Printf("gosdk: RequestHeaders, destination address: %s\n", destAddr.ToString())
49+
fmt.Printf("gosdk: RequestHeaders, request protocol: %s\n", protocol.ToString())
4750
return shared.HeadersStatusContinue
4851
}
4952

@@ -57,15 +60,15 @@ func (p *passthroughFilter) OnRequestBody(body shared.BodyBuffer, endOfStream bo
5760
chunks := body.GetChunks()
5861
var original []byte
5962
for _, chunk := range chunks {
60-
original = append(original, chunk...)
63+
original = append(original, chunk.ToBytes()...)
6164
}
6265
fmt.Printf("gosdk: RequestBody, body: %s\n", original)
6366
body.Drain(uint64(len(original)))
6467
body.Append([]byte("hello world"))
6568
chunks = body.GetChunks()
6669
var modified []byte
6770
for _, chunk := range chunks {
68-
modified = append(modified, chunk...)
71+
modified = append(modified, chunk.ToBytes()...)
6972
}
7073
if string(modified) != "hello world" {
7174
panic("request body should be modified")
@@ -77,7 +80,7 @@ func (p *passthroughFilter) OnRequestBody(body shared.BodyBuffer, endOfStream bo
7780
chunks = body.GetChunks()
7881
modified = nil
7982
for _, chunk := range chunks {
80-
modified = append(modified, chunk...)
83+
modified = append(modified, chunk.ToBytes()...)
8184
}
8285
if string(modified) != string(original) {
8386
panic("request body should be modified")
@@ -88,13 +91,13 @@ func (p *passthroughFilter) OnRequestBody(body shared.BodyBuffer, endOfStream bo
8891
// OnResponseHeaders implements [shared.HttpFilter].
8992
func (p *passthroughFilter) OnResponseHeaders(headers shared.HeaderMap, endOfStream bool) shared.HeadersStatus {
9093
status := headers.GetOne(":status")
91-
if status == "" {
94+
if status.Len == 0 {
9295
panic("x-status header should be set")
9396
}
94-
fmt.Printf("gosdk: ResponseHeaders, status: %v\n", status)
97+
fmt.Printf("gosdk: ResponseHeaders, status: %v\n", status.ToString())
9598
headers.Set("x-passthrough-response-header", "true")
9699
for _, header := range headers.GetAll() {
97-
fmt.Printf("gosdk: ResponseHeaders, header: %s: %s\n", header[0], header[1])
100+
fmt.Printf("gosdk: ResponseHeaders, header: %s: %s\n", header[0].ToString(), header[1].ToString())
98101
}
99102
return shared.HeadersStatusContinue
100103
}
@@ -109,15 +112,15 @@ func (p *passthroughFilter) OnResponseBody(body shared.BodyBuffer, endOfStream b
109112
chunks := body.GetChunks()
110113
var original []byte
111114
for _, chunk := range chunks {
112-
original = append(original, chunk...)
115+
original = append(original, chunk.ToBytes()...)
113116
}
114117
fmt.Printf("gosdk: ResponseBody, body: %s\n", original)
115118
body.Drain(uint64(len(original)))
116119
body.Append([]byte("hello world"))
117120
chunks = body.GetChunks()
118121
var modified []byte
119122
for _, chunk := range chunks {
120-
modified = append(modified, chunk...)
123+
modified = append(modified, chunk.ToBytes()...)
121124
}
122125
if string(modified) != "hello world" {
123126
panic("response body should be modified")
@@ -128,7 +131,7 @@ func (p *passthroughFilter) OnResponseBody(body shared.BodyBuffer, endOfStream b
128131
chunks = body.GetChunks()
129132
modified = nil
130133
for _, chunk := range chunks {
131-
modified = append(modified, chunk...)
134+
modified = append(modified, chunk.ToBytes()...)
132135
}
133136
if string(modified) != string(original) {
134137
panic("response body should be modified")

0 commit comments

Comments
 (0)