Skip to content

Commit a38f74e

Browse files
author
alonbg
committed
bugfix: Dgram: insert a receive block only if "--- dgram_response" is specified.
1 parent 196f9f7 commit a38f74e

File tree

1 file changed

+50
-35
lines changed

1 file changed

+50
-35
lines changed

lib/Test/Nginx/Socket/Lua/Dgram.pm

Lines changed: 50 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,11 @@ _EOC_
101101
_EOC_
102102
} else {
103103
$new_http_server_config .= <<_EOC_;
104-
sock:send('trigger dgram req')
105-
local data, err = sock:receive()
106-
if not data then
107-
sock:close()
108-
ngx.say("receive stream response error: ", err)
109-
return
110-
end
104+
local bytes, err = sock:send('trigger dgram req')
105+
if not bytes then
106+
ngx.say("send stream request error: ", err)
107+
return
108+
end
111109
_EOC_
112110
}
113111

@@ -128,6 +126,14 @@ _EOC_
128126
|| defined $block->dgram_response
129127
|| defined $block->dgram_response_like)
130128
{
129+
$new_http_server_config .= <<_EOC_;
130+
local data, err = sock:receive()
131+
if not data then
132+
sock:close()
133+
ngx.say("receive stream response error: ", err)
134+
return
135+
end
136+
_EOC_
131137
if (defined $block->log_dgram_response) {
132138
$new_http_server_config .= <<_EOC_;
133139
print("stream response: ", data)
@@ -162,24 +168,29 @@ _EOC_
162168
return
163169
end
164170
_EOC_
165-
}
166-
167-
$new_http_server_config .= <<_EOC_;
168-
sock:send('trigger_dgram_req2')
169-
local data, err = sock:receive()
170-
if not data then
171-
ngx.say("receive stream response error: ", err)
172-
return
173-
end
171+
} else {
172+
$new_http_server_config .= <<_EOC_;
173+
local bytes, err = sock:send('trigger dgram req 2')
174+
if not bytes then
175+
ngx.say("send stream request error: ", err)
176+
return
177+
end
174178
_EOC_
179+
}
175180

176181
if (defined $block->response_body
177182
|| defined $block->response_body_like
178183
|| defined $block->dgram_response
179184
|| defined $block->dgram_response_like)
180185
{
181186
$new_http_server_config .= <<_EOC_;
182-
ngx.print(data)
187+
local data, err = sock:receive()
188+
if not data then
189+
sock:close()
190+
ngx.say("receive stream response error: ", err)
191+
return
192+
end
193+
ngx.print(data)
183194
_EOC_
184195
}
185196
}
@@ -197,24 +208,22 @@ _EOC_
197208
if (defined $dgram_req3) {
198209
my $file = gen_data_file($dgram_req3);
199210
$new_http_server_config .= <<_EOC_;
200-
local f = assert(io.open('$file', 'r'))
201-
local data = assert(f:read("*a"))
202-
assert(f:close())
203-
local bytes, err = sock:send(data)
204-
if not bytes then
205-
ngx.say("send stream request error: ", err)
206-
return
207-
end
211+
local f = assert(io.open('$file', 'r'))
212+
local data = assert(f:read("*a"))
213+
assert(f:close())
214+
local bytes, err = sock:send(data)
215+
if not bytes then
216+
ngx.say("send stream request error: ", err)
217+
return
218+
end
208219
_EOC_
209-
}
210-
211-
$new_http_server_config .= <<_EOC_;
212-
sock:send('trigger_dgram_req3')
213-
local data, err = sock:receive()
214-
if not data then
215-
ngx.say("receive stream response error: ", err)
216-
return
217-
end
220+
} else {
221+
$new_http_server_config .= <<_EOC_;
222+
local bytes, err = sock:send('trigger dgram req 3')
223+
if not bytes then
224+
ngx.say("send stream request error: ", err)
225+
return
226+
end
218227
_EOC_
219228

220229
if (defined $block->response_body
@@ -223,7 +232,13 @@ _EOC_
223232
|| defined $block->dgram_response_like)
224233
{
225234
$new_http_server_config .= <<_EOC_;
226-
ngx.print(data)
235+
local data, err = sock:receive()
236+
if not data then
237+
sock:close()
238+
ngx.say("receive stream response error: ", err)
239+
return
240+
end
241+
ngx.print(data)
227242
_EOC_
228243
}
229244
}

0 commit comments

Comments
 (0)