version 1.58, 2005/02/06 21:13:14
|
version 1.59, 2005/02/14 19:54:15
|
|
|
Boolean localConnection, | Boolean localConnection, |
Uint32 portNumber, | Uint32 portNumber, |
SSLContext * sslcontext, | SSLContext * sslcontext, |
Boolean exportConnection) |
Boolean exportConnection, |
|
ReadWriteSem* sslContextObjectLock) |
: Base(PEGASUS_QUEUENAME_HTTPACCEPTOR), // ATTN: Need unique names? | : Base(PEGASUS_QUEUENAME_HTTPACCEPTOR), // ATTN: Need unique names? |
_monitor(monitor), | _monitor(monitor), |
_outputMessageQueue(outputMessageQueue), | _outputMessageQueue(outputMessageQueue), |
|
|
_localConnection(localConnection), | _localConnection(localConnection), |
_portNumber(portNumber), | _portNumber(portNumber), |
_sslcontext(sslcontext), | _sslcontext(sslcontext), |
_exportConnection(exportConnection) |
_exportConnection(exportConnection), |
|
_sslContextObjectLock(sslContextObjectLock) |
{ | { |
Socket::initializeInterface(); | Socket::initializeInterface(); |
| |
|
|
// Create a new conection and add it to the connection list: | // Create a new conection and add it to the connection list: |
| |
AutoPtr<MP_Socket> mp_socket(new MP_Socket(socket, _sslcontext, _exportConnection)); | AutoPtr<MP_Socket> mp_socket(new MP_Socket(socket, _sslcontext, _exportConnection)); |
|
|
|
{ |
|
ReadLock rlock(*_sslContextObjectLock); |
|
|
if (mp_socket->accept() < 0) | if (mp_socket->accept() < 0) |
{ | { |
PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, | PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
|
|
mp_socket->close(); | mp_socket->close(); |
return; | return; |
} | } |
|
} |
| |
HTTPConnection* connection = new HTTPConnection(_monitor, mp_socket, | HTTPConnection* connection = new HTTPConnection(_monitor, mp_socket, |
this, static_cast<MessageQueue *>(_outputMessageQueue), _exportConnection); | this, static_cast<MessageQueue *>(_outputMessageQueue), _exportConnection); |