Author: jmagne
Update of /cvs/dirsec/esc/src/lib/NssHttpClient
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv1861
Modified Files:
engine.cpp
Log Message:
Fix code responsible for closing the connection socket either by client request or when a
connection is dropped.
Index: engine.cpp
===================================================================
RCS file: /cvs/dirsec/esc/src/lib/NssHttpClient/engine.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- engine.cpp 9 Feb 2007 21:56:36 -0000 1.3
+++ engine.cpp 24 Feb 2007 02:10:45 -0000 1.4
@@ -420,6 +420,12 @@
void Engine::CloseConnection()
{
connectionClosed = true;
+
+ if(_sock)
+ {
+ PR_Close(_sock);
+ _sock = NULL;
+ }
}
/**
* Returns a file descriptor for I/O if the HTTP connection is successful
@@ -567,13 +573,12 @@
char *nickName = request.getCertNickName();
char *serverName = (char *)server.getAddr();
- sock = _doConnect( &addr, request.isSSL(), 0, 0,nickName, 0, serverName );
+ _sock = _doConnect( &addr, request.isSSL(), 0, 0,nickName, 0, serverName );
- if ( sock != NULL) {
- _sock = sock;
- PRBool status = request.send( sock );
+ if ( _sock != NULL) {
+ PRBool status = request.send( _sock );
if ( status ) {
- resp = new PSHttpResponse( sock, &request, timeout, expectChunked
,this);
+ resp = new PSHttpResponse( _sock, &request, timeout, expectChunked
,this);
response_code = resp->processResponse(processStreamed);
if(!response_code)
@@ -583,18 +588,17 @@
delete resp;
resp = NULL;
}
- if( sock != NULL ) {
- PR_Close( sock );
- sock = NULL;
+ if( _sock != NULL ) {
+ PR_Close( _sock );
+ _sock = NULL;
}
return NULL;
}
}
- if( sock != NULL ) {
- PR_Close( sock );
- sock = NULL;
+ if( _sock != NULL ) {
+ PR_Close( _sock );
_sock = NULL;
}
}
Show replies by date