version 1.123, 2008/06/10 20:09:29
|
version 1.124, 2008/06/19 17:57:00
|
|
|
orig_ccsid = _SETCCSID(-1); | orig_ccsid = _SETCCSID(-1); |
if (orig_ccsid == -1) | if (orig_ccsid == -1) |
{ | { |
PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
PEG_TRACE_STRING(TRC_DISCARDED_DATA, Tracer::LEVEL1, |
String("HTTPAcceptor::_bind: Can not get current PASE CCSID.")); | String("HTTPAcceptor::_bind: Can not get current PASE CCSID.")); |
orig_ccsid = 1208; | orig_ccsid = 1208; |
} | } |
|
|
int sock_flags; | int sock_flags; |
if ((sock_flags = fcntl(_rep->socket, F_GETFD, 0)) < 0) | if ((sock_flags = fcntl(_rep->socket, F_GETFD, 0)) < 0) |
{ | { |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL1, |
"HTTPAcceptor::_bind: fcntl(F_GETFD) failed"); | "HTTPAcceptor::_bind: fcntl(F_GETFD) failed"); |
} | } |
else | else |
|
|
sock_flags |= FD_CLOEXEC; | sock_flags |= FD_CLOEXEC; |
if (fcntl(_rep->socket, F_SETFD, sock_flags) < 0) | if (fcntl(_rep->socket, F_SETFD, sock_flags) < 0) |
{ | { |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL1, |
"HTTPAcceptor::_bind: fcntl(F_SETFD) failed"); | "HTTPAcceptor::_bind: fcntl(F_SETFD) failed"); |
} | } |
} | } |
|
|
if (_connectionType == LOCAL_CONNECTION) | if (_connectionType == LOCAL_CONNECTION) |
{ | { |
#ifndef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET | #ifndef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET |
PEG_TRACE_CSTRING(TRC_HTTP, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_HTTP, Tracer::LEVEL3, |
"HTTPAcceptor::closeConnectionSocket Unlinking local " | "HTTPAcceptor::closeConnectionSocket Unlinking local " |
"connection."); | "connection."); |
::unlink( | ::unlink( |
|
|
} | } |
else | else |
{ | { |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL1, |
"HTTPAcceptor::reopenConnectionSocket failure _rep is null."); | "HTTPAcceptor::reopenConnectionSocket failure _rep is null."); |
} | } |
} | } |
|
|
if (_connectionType == LOCAL_CONNECTION) | if (_connectionType == LOCAL_CONNECTION) |
{ | { |
#ifndef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET | #ifndef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET |
PEG_TRACE_CSTRING(TRC_HTTP, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_HTTP, Tracer::LEVEL3, |
"HTTPAcceptor::reconnectConnectionSocket Unlinking local " | "HTTPAcceptor::reconnectConnectionSocket Unlinking local " |
"connection." ); | "connection." ); |
::unlink( | ::unlink( |
|
|
} | } |
else | else |
{ | { |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL1, |
"HTTPAcceptor::reconnectConnectionSocket failure _rep is null."); | "HTTPAcceptor::reconnectConnectionSocket failure _rep is null."); |
} | } |
} | } |
|
|
} | } |
else | else |
{ | { |
PEG_TRACE_CSTRING(TRC_HTTP, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_HTTP, Tracer::LEVEL1, |
"HTTPAcceptor::unbind failure _rep is null." ); | "HTTPAcceptor::unbind failure _rep is null." ); |
} | } |
} | } |
|
|
// TCPIP is down reconnect this acceptor | // TCPIP is down reconnect this acceptor |
if (getSocketError() == PEGASUS_NETWORK_TCPIP_STOPPED) | if (getSocketError() == PEGASUS_NETWORK_TCPIP_STOPPED) |
{ | { |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL1, |
"Socket has an IO error. TCP/IP down. Try to reconnect."); | "Socket has an IO error. TCP/IP down. Try to reconnect."); |
| |
reconnectConnectionSocket(); | reconnectConnectionSocket(); |
|
|
int sock_flags; | int sock_flags; |
if ((sock_flags = fcntl(socket, F_GETFD, 0)) < 0) | if ((sock_flags = fcntl(socket, F_GETFD, 0)) < 0) |
{ | { |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL1, |
"HTTPAcceptor: fcntl(F_GETFD) failed"); | "HTTPAcceptor: fcntl(F_GETFD) failed"); |
} | } |
else | else |
|
|
sock_flags |= FD_CLOEXEC; | sock_flags |= FD_CLOEXEC; |
if (fcntl(socket, F_SETFD, sock_flags) < 0) | if (fcntl(socket, F_SETFD, sock_flags) < 0) |
{ | { |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL1, |
"HTTPAcceptor: fcntl(F_SETFD) failed"); | "HTTPAcceptor: fcntl(F_SETFD) failed"); |
} | } |
} | } |
|
|
| |
if (socketAcceptStatus < 0) | if (socketAcceptStatus < 0) |
{ | { |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL1, |
"HTTPAcceptor: SSL_accept() failed"); | "HTTPAcceptor: SSL_accept() failed"); |
return; | return; |
} | } |
|
|
| |
if (socketAcceptStatus == 0) | if (socketAcceptStatus == 0) |
{ | { |
PEG_TRACE_CSTRING(TRC_HTTP, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_HTTP, Tracer::LEVEL1, |
"HTTPAcceptor: SSL_accept() pending"); | "HTTPAcceptor: SSL_accept() pending"); |
connection->_acceptPending = true; | connection->_acceptPending = true; |
Time::gettimeofday(&connection->_acceptPendingStartTime); | Time::gettimeofday(&connection->_acceptPendingStartTime); |
|
|
SocketMessage::READ | SocketMessage::EXCEPTION, | SocketMessage::READ | SocketMessage::EXCEPTION, |
connection->getQueueId(), MonitorEntry::TYPE_CONNECTION)) ) | connection->getQueueId(), MonitorEntry::TYPE_CONNECTION)) ) |
{ | { |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL2, |
PEG_TRACE_CSTRING(TRC_DISCARDED_DATA, Tracer::LEVEL1, |
"HTTPAcceptor::_acceptConnection: Attempt to allocate entry in " | "HTTPAcceptor::_acceptConnection: Attempt to allocate entry in " |
"_entries table failed."); | "_entries table failed."); |
return; | return; |