@@ -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