Skip to content

Commit 0fb09f6

Browse files
committed
test(policy): consume chunked graphql e2e bodies
1 parent 2595827 commit 0fb09f6

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

e2e/rust/tests/forward_proxy_graphql_l7.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,18 @@ impl DockerServer {
3232
let script = r#"from http.server import BaseHTTPRequestHandler, HTTPServer
3333
3434
class Handler(BaseHTTPRequestHandler):
35+
def read_chunked(self):
36+
while True:
37+
size_line = self.rfile.readline()
38+
if not size_line:
39+
return
40+
size = int(size_line.split(b";", 1)[0].strip(), 16)
41+
if size == 0:
42+
while self.rfile.readline().strip():
43+
pass
44+
return
45+
self.rfile.read(size)
46+
self.rfile.read(2)
3547
def do_GET(self):
3648
if self.path == "/" or self.path.startswith("/graphql?"):
3749
self.send_response(200)
@@ -40,7 +52,10 @@ class Handler(BaseHTTPRequestHandler):
4052
self.end_headers()
4153
self.wfile.write(b'{"ok":true}')
4254
def do_POST(self):
43-
_ = self.rfile.read(int(self.headers.get("Content-Length", "0")))
55+
if self.headers.get("Transfer-Encoding", "").lower() == "chunked":
56+
self.read_chunked()
57+
else:
58+
_ = self.rfile.read(int(self.headers.get("Content-Length", "0")))
4459
self.send_response(200)
4560
self.send_header("Content-Type", "application/json")
4661
self.end_headers()

0 commit comments

Comments
 (0)