@ -257,7 +257,7 @@ function socketCloseListener() {
if ( parser ) {
if ( parser ) {
parser . finish ( ) ;
parser . finish ( ) ;
freeParser ( parser , req ) ;
freeParser ( parser , req , socket ) ;
}
}
}
}
@ -276,7 +276,7 @@ function socketErrorListener(err) {
if ( parser ) {
if ( parser ) {
parser . finish ( ) ;
parser . finish ( ) ;
freeParser ( parser , req ) ;
freeParser ( parser , req , socket ) ;
}
}
socket . destroy ( ) ;
socket . destroy ( ) ;
}
}
@ -294,7 +294,7 @@ function socketOnEnd() {
}
}
if ( parser ) {
if ( parser ) {
parser . finish ( ) ;
parser . finish ( ) ;
freeParser ( parser , req ) ;
freeParser ( parser , req , socket ) ;
}
}
socket . destroy ( ) ;
socket . destroy ( ) ;
}
}
@ -309,7 +309,7 @@ function socketOnData(d) {
var ret = parser . execute ( d ) ;
var ret = parser . execute ( d ) ;
if ( ret instanceof Error ) {
if ( ret instanceof Error ) {
debug ( 'parse error' ) ;
debug ( 'parse error' ) ;
freeParser ( parser , req ) ;
freeParser ( parser , req , socket ) ;
socket . destroy ( ) ;
socket . destroy ( ) ;
req . emit ( 'error' , ret ) ;
req . emit ( 'error' , ret ) ;
req . socket . _ hadError = true ;
req . socket . _ hadError = true ;
@ -344,7 +344,7 @@ function socketOnData(d) {
// Got Upgrade header or CONNECT method, but have no handler.
// Got Upgrade header or CONNECT method, but have no handler.
socket . destroy ( ) ;
socket . destroy ( ) ;
}
}
freeParser ( parser , req ) ;
freeParser ( parser , req , socket ) ;
} else if ( parser . incoming && parser . incoming . complete &&
} else if ( parser . incoming && parser . incoming . complete &&
// When the status code is 100 (Continue), the server will
// When the status code is 100 (Continue), the server will
// send a final response after this client sends a request
// send a final response after this client sends a request
@ -352,7 +352,7 @@ function socketOnData(d) {
parser . incoming . statusCode !== 100 ) {
parser . incoming . statusCode !== 100 ) {
socket . removeListener ( 'data' , socketOnData ) ;
socket . removeListener ( 'data' , socketOnData ) ;
socket . removeListener ( 'end' , socketOnEnd ) ;
socket . removeListener ( 'end' , socketOnEnd ) ;
freeParser ( parser , req ) ;
freeParser ( parser , req , socket ) ;
}
}
}
}