@@ -256,6 +256,31 @@ HttpProxy.prototype.proxyRequest = function (req, res, buffer) {
256
256
}
257
257
}
258
258
259
+ //
260
+ // When the `reverseProxy` `response` ends, end the
261
+ // corresponding outgoing `res` unless we have entered
262
+ // an error state. In which case, assume `res.end()` has
263
+ // already been called and the 'error' event listener
264
+ // removed.
265
+ //
266
+ var ended = false ;
267
+ response . on ( 'close' , function ( ) {
268
+ if ( ! ended ) { response . emit ( 'end' ) }
269
+ } ) ;
270
+
271
+ response . on ( 'end' , function ( ) {
272
+ ended = true ;
273
+ if ( ! errState ) {
274
+ reverseProxy . removeListener ( 'error' , proxyError ) ;
275
+
276
+ try { res . end ( ) }
277
+ catch ( ex ) { console . error ( "res.end error: %s" , ex . message ) }
278
+
279
+ // Emit the `end` event now that we have completed proxying
280
+ self . emit ( 'end' , req , res ) ;
281
+ }
282
+ } ) ;
283
+
259
284
// Set the headers of the client response
260
285
res . writeHead ( response . statusCode , response . headers ) ;
261
286
@@ -283,31 +308,6 @@ HttpProxy.prototype.proxyRequest = function (req, res, buffer) {
283
308
}
284
309
285
310
res . on ( 'drain' , ondrain ) ;
286
-
287
- //
288
- // When the `reverseProxy` `response` ends, end the
289
- // corresponding outgoing `res` unless we have entered
290
- // an error state. In which case, assume `res.end()` has
291
- // already been called and the 'error' event listener
292
- // removed.
293
- //
294
- var ended = false ;
295
- response . on ( 'close' , function ( ) {
296
- if ( ! ended ) { response . emit ( 'end' ) }
297
- } ) ;
298
-
299
- response . on ( 'end' , function ( ) {
300
- ended = true ;
301
- if ( ! errState ) {
302
- reverseProxy . removeListener ( 'error' , proxyError ) ;
303
-
304
- try { res . end ( ) }
305
- catch ( ex ) { console . error ( "res.end error: %s" , ex . message ) }
306
-
307
- // Emit the `end` event now that we have completed proxying
308
- self . emit ( 'end' , req , res ) ;
309
- }
310
- } ) ;
311
311
} ) ;
312
312
313
313
//
0 commit comments