|
xrootd
|
#include <XrdClientPhyConnection.hh>


Public Member Functions | |
| XrdClientPhyConnection (XrdClientAbsUnsolMsgHandler *h, XrdClientSid *sid) | |
| ~XrdClientPhyConnection () | |
| XrdClientMessage * | BuildMessage (bool IgnoreTimeouts, bool Enqueue) |
| bool | CheckAutoTerm () |
| bool | Connect (XrdClientUrlInfo RemoteHost, bool isUnix=0) |
| bool | Connect (XrdClientUrlInfo RemoteHost, bool isUnix, int fd) |
| void | CountLogConn (int d=1) |
| void | Disconnect () |
| ERemoteServerType | DoHandShake (ServerInitHandShake &xbody, int substreamid=0) |
| bool | ExpiredTTL () |
| short | GetLogConnCnt () const |
| int | GetReaderThreadsCnt () |
| long | GetTTL () |
| XrdSecProtocol * | GetSecProtocol () const |
| int | GetSocket () |
| void | ReinitFDTable () |
| int | SaveSocket () |
| void | SetInterrupt () |
| void | SetSecProtocol (XrdSecProtocol *sp) |
| void | StartedReader () |
| bool | IsAddress (const XrdOucString &addr) |
| ELoginState | IsLogged () |
| bool | IsPort (int port) |
| bool | IsUser (const XrdOucString &usr) |
| bool | IsValid () |
| void | LockChannel () |
| int | ReadRaw (void *buffer, int BufferLength, int substreamid=-1, int *usedsubstreamid=0) |
| XrdClientMessage * | ReadMessage (int streamid) |
| bool | ReConnect (XrdClientUrlInfo RemoteHost) |
| void | SetLogged (ELoginState status) |
| void | SetTTL (long ttl) |
| void | StartReader () |
| void | Touch () |
| void | UnlockChannel () |
| int | WriteRaw (const void *buffer, int BufferLength, int substreamid=0) |
| int | TryConnectParallelStream (int port, int windowsz, int sockid) |
| int | EstablishPendingParallelStream (int tmpid, int newid) |
| void | RemoveParallelStream (int substreamid) |
| bool | TestAndSetMStreamsGoing () |
| int | GetSockIdHint (int reqsperstream) |
| int | GetSockIdCount () |
| void | PauseSelectOnSubstream (int substreamid) |
| void | RestartSelectOnSubstream (int substreamid) |
| virtual void | BanSockDescr (int sockdescr, int sockid) |
| virtual void | UnBanSockDescr (int sockdescr) |
| void | ReadLock () |
| void | ReadUnLock () |
| int | WipeStreamid (int streamid) |
Public Member Functions inherited from XrdClientUnsolMsgSender | |
| virtual | ~XrdClientUnsolMsgSender () |
| UnsolRespProcResult | SendUnsolicitedMsg (XrdClientUnsolMsgSender *sender, XrdClientMessage *unsolmsg) |
| XrdClientUnsolMsgSender () | |
Public Attributes | |
| long | fServerProto |
| ERemoteServerType | fServerType |
| long | fTTLsec |
Public Attributes inherited from XrdClientUnsolMsgSender | |
| XrdClientAbsUnsolMsgHandler * | UnsolicitedMsgHandler |
Private Member Functions | |
| UnsolRespProcResult | HandleUnsolicited (XrdClientMessage *m) |
Private Attributes | |
| time_t | fLastUseTimestamp |
| enum ELoginState | fLogged |
| XrdSecProtocol * | fSecProtocol |
| XrdClientInputBuffer | fMsgQ |
| int | fRequestTimeout |
| bool | fMStreamsGoing |
| XrdSysRecMutex | fRwMutex |
| XrdSysRecMutex | fMutex |
| XrdSysRecMutex | fMultireadMutex |
| XrdClientThread * | fReaderthreadhandler [64] |
| int | fReaderthreadrunning |
| XrdClientUrlInfo | fServer |
| XrdClientSock * | fSocket |
| XrdSysSemWait | fReaderCV |
| short | fLogConnCnt |
| XrdClientSid * | fSidManager |
| XrdClientPhyConnection::XrdClientPhyConnection | ( | XrdClientAbsUnsolMsgHandler * | h, |
| XrdClientSid * | sid | ||
| ) |
| XrdClientPhyConnection::~XrdClientPhyConnection | ( | ) |
|
inlinevirtual |
References XrdClientSock::BanSockDescr(), and fSocket.
| XrdClientMessage * XrdClientPhyConnection::BuildMessage | ( | bool | IgnoreTimeouts, |
| bool | Enqueue | ||
| ) |
References Error, fMsgQ, fSidManager, XrdClientSid::GetSidInfo(), XrdClientMessage::GetStatusCode(), HandleUnsolicited(), XrdClientMessage::HeaderSID(), XrdClientMessage::HeaderStatus(), Info, XrdClientMessage::IsAttn(), XrdClientDebug::kDUMPDEBUG, kUNSOL_KEEP, kXR_oksofar, XrdClientMessage::kXrdMSC_readerr, XrdClientMessage::kXrdMSC_timeout, XrdClientInputBuffer::PutMsg(), XrdClientMessage::ReadRaw(), XrdClientSid::ReleaseSid(), and Touch().
Referenced by SocketReaderThread().
| bool XrdClientPhyConnection::CheckAutoTerm | ( | ) |
References FALSE, fMutex, fReaderthreadrunning, Info, IsValid(), XrdClientDebug::kHIDEBUG, TRUE, and UnlockChannel().
Referenced by SocketReaderThread().
| bool XrdClientPhyConnection::Connect | ( | XrdClientUrlInfo | RemoteHost, |
| bool | isUnix = 0 |
||
| ) |
Referenced by XrdClientConnectionMgr::Connect(), and ReConnect().
| bool XrdClientPhyConnection::Connect | ( | XrdClientUrlInfo | RemoteHost, |
| bool | isUnix, | ||
| int | fd | ||
| ) |
Connect to a remote location
| RemoteHost | address descriptor |
| isUnix | true if the address points to a Unix socket |
| fd | a descriptor pointing to a connected socket if the subroutine is supposed to reuse an existing connection, -1 otherwise |
References Disconnect(), EnvGetLong, Error, FALSE, XrdClientUrlInfo::File, fMutex, fReaderthreadrunning, fServer, fSocket, fTTLsec, XrdClientUrlInfo::Host, Info, XrdClientSock::IsConnected(), XrdClientDebug::kHIDEBUG, NAME_DATASERVERCONN_TTL, NAME_MULTISTREAMCNT, XrdClientUrlInfo::Port, Touch(), TRUE, and XrdClientSock::TryConnect().
| void XrdClientPhyConnection::CountLogConn | ( | int | d = 1 | ) |
References fLogConnCnt, fMutex, XrdSysMutex::Lock(), and XrdSysMutex::UnLock().
Referenced by XrdClientConnectionMgr::Connect(), and XrdClientLogConnection::~XrdClientLogConnection().
| void XrdClientPhyConnection::Disconnect | ( | ) |
References XrdClientSock::Disconnect(), fMutex, fSocket, Info, and XrdClientDebug::kHIDEBUG.
Referenced by Connect(), DestroyPhyConn(), DisconnectElapsedPhyConn(), HandleUnsolicited(), ReadRaw(), ReConnect(), WriteRaw(), and ~XrdClientPhyConnection().
| ERemoteServerType XrdClientPhyConnection::DoHandShake | ( | ServerInitHandShake & | xbody, |
| int | substreamid = 0 |
||
| ) |
References clientMarshall(), ClientProtocolRequest::clientpv, DebugLevel, Error, XrdClientMessage::fHdr, ClientInitHandShake::fifth, ServerResponseBody_Protocol::flags, ClientInitHandShake::fourth, fServerProto, fServerType, XrdClientMessage::GetData(), ClientRequest::header, XrdClientMessage::HeaderStatus(), Info, XrdClientMessage::IsError(), XrdClientDebug::kDUMPDEBUG, XrdClientDebug::kHIDEBUG, XrdClientDebug::kNODEBUG, kSTBaseXrootd, kSTDataXrootd, kSTError, kSTMetaXrootd, kSTNone, kSTRootd, kXR_attrMeta, kXR_DataServer, kXR_isManager, kXR_isServer, kXR_LBalServer, kXR_ok, kXR_protocol, kXR_PROTOCOLVERSION, ServerInitHandShake::msgval, ClientRequest::protocol, ServerInitHandShake::protover, ServerResponseBody_Protocol::pval, XrdClientMessage::ReadRaw(), ReadRaw(), ClientRequestHdr::requestid, ServerInitHandShake2HostFmt(), smartPrintClientHeader(), smartPrintServerHeader(), and WriteRaw().
Referenced by XrdClientMStream::AddParallelStream(), and XrdClientConn::DoHandShake().
|
inline |
References XrdClientSock::EstablishParallelSock(), and fSocket.
Referenced by XrdClientMStream::AddParallelStream().
| bool XrdClientPhyConnection::ExpiredTTL | ( | ) |
References fLastUseTimestamp, and fTTLsec.
Referenced by DisconnectElapsedPhyConn().
|
inline |
References fLogConnCnt.
Referenced by DisconnectElapsedPhyConn(), and DumpPhyConn().
|
inline |
References fMutex, and fReaderthreadrunning.
|
inline |
References fSecProtocol.
|
inline |
References XrdClientSock::fSocket, and fSocket.
Referenced by XrdClientConn::DoLogin().
|
inline |
References fSocket, and XrdClientSock::GetSockIdCount().
Referenced by XrdClientMStream::AddParallelStream(), and XrdClientConn::GetParallelStreamCount().
|
inline |
References fSocket, and XrdClientSock::GetSockIdHint().
Referenced by XrdClientConn::GetParallelStreamToUse().
|
inline |
References fTTLsec.
|
private |
References ServerResponseBody_Attn::actnum, Disconnect(), FALSE, fServer, XrdClientMessage::GetData(), XrdClientUrlInfo::Host, Info, XrdClientMessage::IsAttn(), XrdClientDebug::kNODEBUG, kUNSOL_CONTINUE, kXR_asyncab, kXR_asyncdi, kXR_asyncms, kXR_asyncrd, ServerResponseBody_Attn::parms, XrdClientUrlInfo::Port, XrdClientUnsolMsgSender::SendUnsolicitedMsg(), Touch(), and TRUE.
Referenced by BuildMessage().
|
inline |
References fServer, XrdClientUrlInfo::Host, and XrdClientUrlInfo::HostAddr.
| ELoginState XrdClientPhyConnection::IsLogged | ( | ) |
References fLogged, and fMutex.
Referenced by XrdClientConn::GetAccessToSrv().
|
inline |
References fServer, and XrdClientUrlInfo::Port.
|
inline |
References fServer, and XrdClientUrlInfo::User.
| bool XrdClientPhyConnection::IsValid | ( | ) |
References fMutex, fSocket, and XrdClientSock::IsConnected().
Referenced by XrdClientMStream::AddParallelStream(), CheckAutoTerm(), XrdClientConnectionMgr::Connect(), DisconnectElapsedPhyConn(), XrdClientConn::DoHandShake(), DumpPhyConn(), XrdClientConn::GetAccessToSrv(), XrdClientConnectionMgr::GetPhyConnection(), XrdClientConn::IsPhyConnConnected(), ReadRaw(), and WriteRaw().
| void XrdClientPhyConnection::LockChannel | ( | ) |
References fRwMutex, and XrdSysMutex::Lock().
Referenced by XrdClientPhyConnLocker::XrdClientPhyConnLocker().
|
inline |
References fSocket, and XrdClientSock::PauseSelectOnSubstream().
Referenced by XrdClientMessage::ReadRaw().
|
inline |
References fMultireadMutex, and XrdSysMutex::Lock().
Referenced by XrdClientMessage::ReadRaw().
| XrdClientMessage * XrdClientPhyConnection::ReadMessage | ( | int | streamid | ) |
References fMsgQ, fRequestTimeout, XrdClientInputBuffer::GetMsg(), and Touch().
Referenced by XrdClientConnectionMgr::ReadMsg().
| int XrdClientPhyConnection::ReadRaw | ( | void * | buffer, |
| int | BufferLength, | ||
| int | substreamid = -1, |
||
| int * | usedsubstreamid = 0 |
||
| ) |
References DebugLevel, Disconnect(), fServer, fSocket, XrdClientUrlInfo::Host, Info, XrdClientSock::IsConnected(), IsValid(), XrdClientDebug::kDUMPDEBUG, XrdClientDebug::kHIDEBUG, XrdClientDebug::kUSERDEBUG, XrdClientUrlInfo::Port, XrdClientSock::RecvRaw(), TXSOCK_ERR, TXSOCK_ERR_TIMEOUT, and xrdmin.
Referenced by XrdClientMStream::BindPendingStream(), DoHandShake(), XrdClientLogConnection::ReadRaw(), and XrdClientMessage::ReadRaw().
|
inline |
References fMultireadMutex, and XrdSysMutex::UnLock().
Referenced by XrdClientMessage::ReadRaw().
| bool XrdClientPhyConnection::ReConnect | ( | XrdClientUrlInfo | RemoteHost | ) |
References Connect(), and Disconnect().
|
inline |
References fSocket, and XrdClientSock::ReinitFDTable().
Referenced by XrdClientMStream::AddParallelStream().
|
inline |
References fSocket, and XrdClientSock::RemoveParallelSock().
Referenced by XrdClientMStream::RemoveParallelStream().
|
inline |
References fSocket, and XrdClientSock::RestartSelectOnSubstream().
Referenced by XrdClientMessage::ReadRaw().
|
inline |
References fSocket, fTTLsec, and XrdClientSock::SaveSocket().
Referenced by XrdClientConn::GetAccessToSrv().
|
inline |
References fSocket, and XrdClientSock::SetInterrupt().
|
inline |
References fLogged.
Referenced by XrdClientConn::DoLogin(), and XrdClientPhyConnection().
|
inline |
References fSecProtocol.
Referenced by XrdClientConn::DoLogin().
|
inline |
References fTTLsec.
Referenced by XrdClientConn::GetAccessToSrv().
| void XrdClientPhyConnection::StartedReader | ( | ) |
References fMutex, fReaderCV, fReaderthreadrunning, and XrdSysSemWait::Post().
Referenced by SocketReaderThread().
| void XrdClientPhyConnection::StartReader | ( | ) |
References Error, fMutex, fReaderCV, fReaderthreadhandler, fReaderthreadrunning, fServerType, Info, XrdClientDebug::kHIDEBUG, kSTBaseXrootd, READERCOUNT, SocketReaderThread(), and XrdSysSemWait::Wait().
Referenced by XrdClientConn::GetAccessToSrv().
| bool XrdClientPhyConnection::TestAndSetMStreamsGoing | ( | ) |
References fMStreamsGoing, and fMutex.
Referenced by XrdClientMStream::EstablishParallelStreams().
| void XrdClientPhyConnection::Touch | ( | ) |
References fLastUseTimestamp, and fMutex.
Referenced by BuildMessage(), XrdClientConnectionMgr::Connect(), Connect(), DestroyPhyConn(), DisconnectElapsedPhyConn(), HandleUnsolicited(), ReadMessage(), WriteRaw(), and XrdClientPhyConnection().
|
inline |
References fSocket, and XrdClientSock::TryConnectParallelSock().
Referenced by XrdClientMStream::AddParallelStream().
|
inlinevirtual |
References fSocket, and XrdClientSock::UnBanSockDescr().
Referenced by XrdClientMStream::AddParallelStream().
| void XrdClientPhyConnection::UnlockChannel | ( | ) |
References fRwMutex, and XrdSysMutex::UnLock().
Referenced by CheckAutoTerm(), ~XrdClientPhyConnection(), and XrdClientPhyConnLocker::~XrdClientPhyConnLocker().
|
inline |
References fMsgQ, and XrdClientInputBuffer::WipeStreamid().
Referenced by XrdClientConnectionMgr::Connect().
| int XrdClientPhyConnection::WriteRaw | ( | const void * | buffer, |
| int | BufferLength, | ||
| int | substreamid = 0 |
||
| ) |
References Disconnect(), fServer, fSocket, XrdClientUrlInfo::Host, Info, XrdClientSock::IsConnected(), IsValid(), XrdClientDebug::kDUMPDEBUG, XrdClientDebug::kHIDEBUG, XrdClientDebug::kUSERDEBUG, XrdClientUrlInfo::Port, XrdClientSock::SendRaw(), Touch(), TXSOCK_ERR, and TXSOCK_ERR_TIMEOUT.
Referenced by XrdClientMStream::BindPendingStream(), DoHandShake(), and XrdClientLogConnection::WriteRaw().
|
private |
Referenced by ExpiredTTL(), and Touch().
|
private |
Referenced by CountLogConn(), and GetLogConnCnt().
|
private |
Referenced by IsLogged(), and SetLogged().
|
private |
Referenced by BuildMessage(), ReadMessage(), and WipeStreamid().
|
private |
Referenced by TestAndSetMStreamsGoing().
|
private |
Referenced by ReadLock(), and ReadUnLock().
|
private |
Referenced by CheckAutoTerm(), Connect(), CountLogConn(), Disconnect(), GetReaderThreadsCnt(), IsLogged(), IsValid(), StartedReader(), StartReader(), TestAndSetMStreamsGoing(), and Touch().
|
private |
Referenced by StartedReader(), and StartReader().
|
private |
Referenced by StartReader(), XrdClientPhyConnection(), and ~XrdClientPhyConnection().
|
private |
Referenced by CheckAutoTerm(), Connect(), GetReaderThreadsCnt(), StartedReader(), StartReader(), and XrdClientPhyConnection().
|
private |
Referenced by ReadMessage(), and XrdClientPhyConnection().
|
private |
Referenced by LockChannel(), and UnlockChannel().
|
private |
Referenced by GetSecProtocol(), SetSecProtocol(), XrdClientPhyConnection(), and ~XrdClientPhyConnection().
|
private |
Referenced by Connect(), HandleUnsolicited(), IsAddress(), IsPort(), IsUser(), ReadRaw(), WriteRaw(), XrdClientPhyConnection(), and ~XrdClientPhyConnection().
| long XrdClientPhyConnection::fServerProto |
Referenced by DoHandShake(), and XrdClientConn::DoHandShake().
| ERemoteServerType XrdClientPhyConnection::fServerType |
Referenced by DoHandShake(), XrdClientConn::DoHandShake(), StartReader(), and XrdClientPhyConnection().
|
private |
Referenced by BuildMessage().
|
private |
Referenced by BanSockDescr(), Connect(), Disconnect(), EstablishPendingParallelStream(), GetSocket(), GetSockIdCount(), GetSockIdHint(), IsValid(), PauseSelectOnSubstream(), ReadRaw(), ReinitFDTable(), RemoveParallelStream(), RestartSelectOnSubstream(), SaveSocket(), SetInterrupt(), TryConnectParallelStream(), UnBanSockDescr(), WriteRaw(), and ~XrdClientPhyConnection().
| long XrdClientPhyConnection::fTTLsec |
Referenced by Connect(), ExpiredTTL(), GetTTL(), SaveSocket(), SetTTL(), and XrdClientPhyConnection().
1.8.3.1