|
xrootd
|
XRootD transport handler. More...
#include <XrdClXRootDTransport.hh>


Public Member Functions | |
| XRootDTransport () | |
| Constructor. More... | |
| ~XRootDTransport () | |
| Destructor. More... | |
| virtual Status | GetHeader (Message *message, int socket) |
| virtual Status | GetBody (Message *message, int socket) |
| virtual void | InitializeChannel (AnyObject &channelData) |
| Initialize channel. More... | |
| virtual void | FinalizeChannel (AnyObject &channelData) |
| Finalize channel. More... | |
| virtual Status | HandShake (HandShakeData *handShakeData, AnyObject &channelData) |
| HandShake. More... | |
| virtual bool | IsStreamTTLElapsed (time_t time, AnyObject &channelData) |
| Check if the stream should be disconnected. More... | |
| virtual PathID | Multiplex (Message *msg, AnyObject &channelData, PathID *hint=0) |
| virtual PathID | MultiplexSubStream (Message *msg, AnyObject &channelData, PathID *hint=0) |
| virtual uint16_t | StreamNumber (AnyObject &channelData) |
| Return a number of streams that should be created. More... | |
| virtual uint16_t | SubStreamNumber (AnyObject &channelData) |
| Return a number of substreams per stream that should be created. More... | |
| virtual bool | NeedControlConnection () |
| virtual void | Disconnect (AnyObject &channelData, uint16_t streamId, uint16_t subStreamId) |
| The stream has been disconnected, do the cleanups. More... | |
| virtual Status | Query (uint16_t query, AnyObject &result, AnyObject &channelData) |
| Query the channel. More... | |
| virtual uint32_t | StreamAction (Message *msg, AnyObject &channelData) |
| Check if the message invokes a stream action. More... | |
Public Member Functions inherited from XrdCl::TransportHandler | |
| virtual | ~TransportHandler () |
Static Public Member Functions | |
| static Status | MarshallRequest (Message *msg) |
| Marshal the outgoing message. More... | |
| static Status | UnMarshallRequest (Message *msg) |
| static Status | UnMarshallBody (Message *msg, uint16_t reqType) |
| Unmarshall the body of the incoming message. More... | |
| static void | UnMarshallHeader (Message *msg) |
| Unmarshall the header incoming message. More... | |
| static void | LogErrorResponse (const Message &msg) |
| Log server error response. More... | |
| static void | SetDescription (Message *msg) |
| Get the description of a message. More... | |
Private Types | |
| typedef XrdSecProtocol *(* | XrdSecGetProt_t )(const char *, const sockaddr &, const XrdSecParameters &, XrdOucErrInfo *) |
Static Private Member Functions | |
| static std::string | ServerFlagsToStr (uint32_t flags) |
| static std::string | FileHandleToStr (const unsigned char handle[4]) |
Private Attributes | |
| void * | pSecLibHandle |
| XrdSecGetProt_t | pAuthHandler |
Additional Inherited Members | |
Public Types inherited from XrdCl::TransportHandler | |
| enum | StreamAction { NoAction = 0x0000, DigestMsg = 0x0001, AbortStream = 0x0002, CloseStream = 0x0004, ResumeStream = 0x0008, HoldStream = 0x0010 } |
| Stream actions that may be triggered by incoming control messages. More... | |
XRootD transport handler.
|
private |
| XrdCl::XRootDTransport::XRootDTransport | ( | ) |
Constructor.
| XrdCl::XRootDTransport::~XRootDTransport | ( | ) |
Destructor.
References pSecLibHandle.
|
private |
References XrdCl::XRootDChannelInfo::authEnv, XrdCl::XRootDChannelInfo::authParams, XrdCl::XRootDChannelInfo::authProtocol, and XrdSecProtocol::Delete().
Referenced by DoAuthentication().
|
virtual |
The stream has been disconnected, do the cleanups.
Implements XrdCl::TransportHandler.
References XrdCl::XRootDStreamInfo::Disconnected, XrdCl::AnyObject::Get(), XrdCl::XRootDChannelInfo::mutex, XrdCl::SIDManager::ReleaseAllTimedOut(), XrdCl::XRootDChannelInfo::sidManager, XrdCl::XRootDStreamInfo::status, and XrdCl::XRootDChannelInfo::stream.
|
private |
References ClientRequest::auth, XrdCl::XRootDChannelInfo::authBuffer, XrdCl::XRootDChannelInfo::authEnv, ServerResponse::authmore, XrdCl::XRootDChannelInfo::authParams, XrdCl::XRootDChannelInfo::authProtocol, XrdCl::XRootDChannelInfo::authProtocolName, XrdCl::XRootDStreamInfo::AuthSent, ServerResponse::body, XrdSecBuffer::buffer, CleanUpAuthentication(), XrdCl::HandShakeData::clientName, ClientAuthRequest::credtype, ServerResponseBody_Authmore::data, XrdCl::Log::Debug(), ClientAuthRequest::dlen, ServerResponseHeader::dlen, XrdSecProtocol::Entity, XrdCl::errAuthFailed, ServerResponseBody_Error::errmsg, XrdCl::Log::Error(), ServerResponse::error, XrdCl::Buffer::GetBuffer(), XrdSecProtocol::getCredentials(), GetCredentials(), XrdOucErrInfo::getErrText(), XrdCl::DefaultEnv::GetLog(), ServerResponse::hdr, ClientRequest::header, XrdCl::HandShakeData::in, XrdCl::Status::IsOK(), kXR_auth, kXR_authmore, kXR_error, kXR_ok, XrdCl::XRootDStreamInfo::LoginSent, MarshallRequest(), XrdCl::HandShakeData::out, XrdSecEntity::prot, XrdOucEnv::Put(), ClientRequestHdr::requestid, XrdSecBuffer::size, XrdCl::XRootDStreamInfo::status, ServerResponseHeader::status, XrdCl::stFatal, XrdCl::stOK, XrdCl::XRootDChannelInfo::stream, XrdCl::HandShakeData::streamId, XrdCl::HandShakeData::streamName, XrdCl::suContinue, XrdCl::XRootDTransportMsg, and XrdCl::Buffer::Zero().
Referenced by HandShakeMain().
|
staticprivate |
Referenced by SetDescription().
|
virtual |
Finalize channel.
Implements XrdCl::TransportHandler.
|
private |
References XrdCl::Log::Debug(), ClientBindRequest::dlen, XrdCl::Buffer::GetBuffer(), XrdCl::DefaultEnv::GetLog(), kXR_bind, MarshallRequest(), ClientBindRequest::requestid, ClientBindRequest::sessid, XrdCl::XRootDChannelInfo::sessionId, XrdCl::HandShakeData::streamName, and XrdCl::XRootDTransportMsg.
Referenced by HandShakeParallel().
|
private |
|
private |
References XrdCl::Buffer::Allocate(), ClientProtocolRequest::clientpv, XrdCl::Log::Debug(), ClientInitHandShake::fifth, ClientInitHandShake::fourth, XrdCl::Buffer::GetBuffer(), XrdCl::DefaultEnv::GetLog(), kXR_protocol, kXR_PROTOCOLVERSION, ClientProtocolRequest::requestid, XrdCl::HandShakeData::streamName, XrdCl::XRootDTransportMsg, and XrdCl::Buffer::Zero().
Referenced by HandShakeMain().
|
private |
References ClientLoginRequest::capver, XrdCl::Log::Debug(), ClientLoginRequest::dlen, XrdCl::Buffer::GetBuffer(), XrdCl::DefaultEnv::GetLog(), XrdCl::URL::GetUserName(), kXR_asyncap, kXR_login, kXR_useruser, kXR_ver003, MarshallRequest(), ClientLoginRequest::pid, ClientLoginRequest::requestid, ClientLoginRequest::role, XrdCl::HandShakeData::streamName, XrdCl::HandShakeData::url, XrdOucUtils::UserName(), ClientLoginRequest::username, and XrdCl::XRootDTransportMsg.
Referenced by HandShakeMain().
|
private |
References XrdCl::Log::Error(), XrdCl::DefaultEnv::GetLog(), LT_MODULE_EXT, pAuthHandler, pSecLibHandle, and XrdCl::XRootDTransportMsg.
Referenced by GetCredentials().
Read the message body from the socket, the socket is non-blocking, the method may be called multiple times - see GetHeader for details
| message | the message buffer containing the header |
| socket | the socket |
Implements XrdCl::TransportHandler.
References XrdCl::Buffer::AdvanceCursor(), XrdCl::errSocketError, XrdCl::Buffer::GetBuffer(), XrdCl::Buffer::GetBufferAtCursor(), XrdCl::Buffer::GetCursor(), read(), XrdCl::Buffer::ReAllocate(), XrdCl::stError, XrdCl::stOK, XrdCl::suDone, and XrdCl::suRetry.
|
private |
References XrdCl::XRootDChannelInfo::authEnv, XrdCl::XRootDChannelInfo::authParams, XrdCl::XRootDChannelInfo::authProtocol, XrdCl::Log::Debug(), XrdSecProtocol::Delete(), XrdSecProtocol::Entity, XrdCl::errAuthFailed, XrdCl::Log::Error(), GetAuthHandler(), XrdSecProtocol::getCredentials(), XrdOucErrInfo::getErrText(), XrdCl::URL::GetHostName(), XrdCl::DefaultEnv::GetLog(), XrdSecEntity::prot, XrdCl::HandShakeData::serverAddr, XrdCl::stFatal, XrdCl::stOK, XrdCl::HandShakeData::streamName, XrdCl::suContinue, XrdCl::HandShakeData::url, and XrdCl::XRootDTransportMsg.
Referenced by DoAuthentication().
Read a message header from the socket, the socket is non-blocking, so if there is not enough data the function should return errRetry in which case it will be called again when more data arrives, with the data previously read stored in the message buffer
| message | the message buffer |
| socket | the socket |
Implements XrdCl::TransportHandler.
References XrdCl::Buffer::AdvanceCursor(), XrdCl::Buffer::Allocate(), XrdCl::errInternal, XrdCl::errSocketError, XrdCl::Buffer::GetBufferAtCursor(), XrdCl::Buffer::GetCursor(), XrdCl::Buffer::GetSize(), read(), XrdCl::stError, XrdCl::stOK, XrdCl::suDone, XrdCl::suRetry, and UnMarshallHeader().
|
virtual |
HandShake.
Implements XrdCl::TransportHandler.
References XrdCl::errInternal, XrdCl::Log::Error(), XrdCl::AnyObject::Get(), XrdCl::DefaultEnv::GetLog(), HandShakeMain(), HandShakeParallel(), XrdCl::XRootDChannelInfo::mutex, XrdCl::stFatal, XrdCl::XRootDChannelInfo::stream, XrdCl::XRootDChannelInfo::streamName, XrdCl::HandShakeData::streamName, XrdCl::HandShakeData::subStreamId, and XrdCl::XRootDTransportMsg.
|
private |
References XrdCl::XRootDStreamInfo::AuthSent, XrdCl::XRootDStreamInfo::Broken, XrdCl::Status::code, XrdCl::XRootDStreamInfo::Connected, XrdCl::XRootDStreamInfo::Disconnected, DoAuthentication(), GenerateInitialHSProtocol(), GenerateLogIn(), XrdCl::AnyObject::Get(), XrdCl::XRootDStreamInfo::HandShakeReceived, XrdCl::XRootDStreamInfo::HandShakeSent, XrdCl::Status::IsOK(), XrdCl::XRootDStreamInfo::LoginSent, XrdCl::HandShakeData::out, ProcessLogInResp(), ProcessProtocolResp(), ProcessServerHS(), XrdCl::XRootDStreamInfo::status, XrdCl::stOK, XrdCl::XRootDChannelInfo::stream, XrdCl::HandShakeData::subStreamId, XrdCl::suContinue, and XrdCl::suDone.
Referenced by HandShake().
|
private |
References XrdCl::XRootDStreamInfo::BindSent, XrdCl::XRootDStreamInfo::Broken, XrdCl::XRootDStreamInfo::Connected, XrdCl::XRootDStreamInfo::Disconnected, GenerateBind(), GenerateInitialHS(), XrdCl::AnyObject::Get(), XrdCl::XRootDStreamInfo::HandShakeSent, XrdCl::Status::IsOK(), XrdCl::HandShakeData::out, ProcessBindResp(), ProcessServerHS(), XrdCl::XRootDStreamInfo::status, XrdCl::stOK, XrdCl::XRootDChannelInfo::stream, XrdCl::HandShakeData::subStreamId, and XrdCl::suContinue.
Referenced by HandShake().
|
virtual |
Initialize channel.
Implements XrdCl::TransportHandler.
References XrdCl::DefaultSubStreamsPerChannel, XrdCl::DefaultEnv::GetEnv(), XrdCl::Env::GetInt(), XrdCl::XRootDChannelInfo::mutex, XrdCl::AnyObject::Set(), and XrdCl::XRootDChannelInfo::stream.
|
virtual |
Check if the stream should be disconnected.
Implements XrdCl::TransportHandler.
|
static |
Log server error response.
References ServerResponseBody_Error::errmsg, ServerResponseBody_Error::errnum, XrdCl::Log::Error(), XrdCl::Buffer::GetBuffer(), XrdCl::DefaultEnv::GetLog(), and XrdCl::XRootDTransportMsg.
Marshal the outgoing message.
References ClientRequest::chmod, ClientProtocolRequest::clientpv, ClientReadVRequest::dlen, ClientRequestHdr::dlen, XrdCl::Buffer::GetBuffer(), ClientRequest::header, ClientQueryRequest::infotype, kXR_chmod, kXR_locate, kXR_login, kXR_mkdir, kXR_open, kXR_protocol, kXR_query, kXR_read, kXR_readv, kXR_truncate, kXR_write, ClientRequest::locate, ClientRequest::login, ClientRequest::mkdir, ClientChmodRequest::mode, ClientMkdirRequest::mode, ClientOpenRequest::mode, ClientReadRequest::offset, ClientTruncateRequest::offset, ClientWriteRequest::offset, readahead_list::offset, ClientRequest::open, ClientLocateRequest::options, ClientOpenRequest::options, ClientLoginRequest::pid, ClientRequest::protocol, ClientRequest::query, ClientRequest::read, ClientRequest::readv, ClientRequestHdr::requestid, ClientReadRequest::rlen, readahead_list::rlen, ClientRequest::truncate, and ClientRequest::write.
Referenced by DoAuthentication(), GenerateBind(), GenerateLogIn(), MultiplexSubStream(), XrdCl::XRootDMsgHandler::RewriteRequestRedirect(), XrdCl::XRootDMsgHandler::RewriteRequestWait(), XrdCl::MessageUtils::SendMessage(), XrdCl::XRootDMsgHandler::SwitchOnRefreshFlag(), UnMarshallRequest(), and XrdCl::XRootDMsgHandler::UpdateTriedCGI().
|
virtual |
Return the ID for the up stream this message should be sent by and the down stream which the answer should be expected at. Modify the message itself if necessary. If hint is non-zero then the message should be modified such that the answer will be returned via the hinted stream.
Implements XrdCl::TransportHandler.
|
virtual |
Return the ID for the up substream this message should be sent by and the down substream which the answer should be expected at. Modify the message itself if necessary. If hint is non-zero then the message should be modified such that the answer will be returned via the hinted stream.
Implements XrdCl::TransportHandler.
References XrdCl::XRootDStreamInfo::Connected, XrdCl::Log::Debug(), ClientReadRequest::dlen, XrdCl::PathID::down, XrdCl::AnyObject::Get(), XrdCl::Buffer::GetBuffer(), XrdCl::DefaultEnv::GetLog(), XrdCl::Buffer::GetSize(), kXR_isServer, kXR_read, kXR_readv, kXR_write, MarshallRequest(), XrdCl::XRootDChannelInfo::mutex, ClientReadVRequest::pathid, read_args::pathid, XrdCl::Buffer::ReAllocate(), ClientRequestHdr::requestid, XrdCl::XRootDChannelInfo::serverFlags, XrdCl::XRootDChannelInfo::stream, XrdCl::XRootDChannelInfo::streamName, UnMarshallRequest(), XrdCl::PathID::up, and XrdCl::XRootDTransportMsg.
|
inlinevirtual |
Return the information whether a control connection needs to be valid before establishing other connections
|
private |
References ServerResponse::bind, ServerResponse::body, XrdCl::Log::Debug(), XrdCl::errHandShakeFailed, XrdCl::Log::Error(), XrdCl::Buffer::GetBuffer(), XrdCl::DefaultEnv::GetLog(), ServerResponse::hdr, XrdCl::HandShakeData::in, XrdCl::Status::IsOK(), kXR_bind, kXR_ok, ServerResponseHeader::status, XrdCl::stFatal, XrdCl::XRootDChannelInfo::stream, XrdCl::HandShakeData::streamName, XrdCl::HandShakeData::subStreamId, ServerResponseBody_Bind::substreamid, UnMarshallBody(), and XrdCl::XRootDTransportMsg.
Referenced by HandShakeParallel().
|
private |
References XrdCl::XRootDChannelInfo::authBuffer, ServerResponse::body, XrdCl::Log::Debug(), ServerResponseHeader::dlen, XrdCl::errLoginFailed, XrdCl::Log::Error(), XrdCl::Buffer::GetBuffer(), XrdCl::DefaultEnv::GetLog(), ServerResponse::hdr, XrdCl::HandShakeData::in, XrdCl::Status::IsOK(), kXR_login, kXR_ok, ServerResponse::login, ServerResponseBody_Login::sec, ServerResponseBody_Login::sessid, XrdCl::XRootDChannelInfo::sessionId, ServerResponseHeader::status, XrdCl::stFatal, XrdCl::stOK, XrdCl::HandShakeData::streamName, XrdCl::suContinue, UnMarshallBody(), and XrdCl::XRootDTransportMsg.
Referenced by HandShakeMain().
|
private |
References ServerResponse::body, XrdCl::Log::Debug(), XrdCl::errHandShakeFailed, XrdCl::Log::Error(), ServerResponseBody_Protocol::flags, XrdCl::Buffer::GetBuffer(), XrdCl::DefaultEnv::GetLog(), ServerResponse::hdr, XrdCl::HandShakeData::in, XrdCl::Status::IsOK(), kXR_ok, kXR_protocol, ServerResponse::protocol, XrdCl::XRootDChannelInfo::protocolVersion, ServerResponseBody_Protocol::pval, XrdCl::XRootDChannelInfo::serverFlags, ServerFlagsToStr(), ServerResponseHeader::status, XrdCl::stFatal, XrdCl::stOK, XrdCl::HandShakeData::streamName, XrdCl::suContinue, UnMarshallBody(), and XrdCl::XRootDTransportMsg.
Referenced by HandShakeMain().
|
private |
References XrdCl::Log::Debug(), XrdCl::errHandShakeFailed, XrdCl::Log::Error(), XrdCl::Buffer::GetBuffer(), XrdCl::DefaultEnv::GetLog(), XrdCl::HandShakeData::in, kXR_DataServer, kXR_isManager, kXR_isServer, kXR_ok, ServerInitHandShake::msgval, XrdCl::XRootDChannelInfo::protocolVersion, ServerInitHandShake::protover, XrdCl::XRootDChannelInfo::serverFlags, ServerFlagsToStr(), ServerResponseHeader::status, XrdCl::stFatal, XrdCl::stOK, XrdCl::HandShakeData::streamName, XrdCl::suContinue, and XrdCl::XRootDTransportMsg.
Referenced by HandShakeMain(), and HandShakeParallel().
|
virtual |
Query the channel.
Implements XrdCl::TransportHandler.
References XrdCl::TransportQuery::Auth, XrdCl::XRootDChannelInfo::authProtocolName, XrdCl::errQueryNotSupported, XrdCl::AnyObject::Get(), XrdCl::XRootDChannelInfo::mutex, XrdCl::TransportQuery::Name, XrdCl::XRootDQuery::ProtocolVersion, XrdCl::XRootDChannelInfo::protocolVersion, XrdCl::XRootDQuery::ServerFlags, XrdCl::XRootDChannelInfo::serverFlags, XrdCl::AnyObject::Set(), XrdCl::XRootDQuery::SIDManager, XrdCl::XRootDChannelInfo::sidManager, and XrdCl::stError.
|
staticprivate |
References kXR_attrMeta, kXR_attrProxy, kXR_attrSuper, kXR_isManager, and kXR_isServer.
Referenced by ProcessProtocolResp(), and ProcessServerHS().
|
static |
Get the description of a message.
References ClientProtocolRequest::clientpv, ClientMvRequest::dlen, ClientQueryRequest::dlen, ClientStatRequest::dlen, ClientTruncateRequest::dlen, ClientWriteRequest::dlen, ClientRequestHdr::dlen, XrdCl::Log::DumpMsg, ClientCloseRequest::fhandle, ClientReadRequest::fhandle, ClientStatRequest::fhandle, ClientSyncRequest::fhandle, ClientTruncateRequest::fhandle, ClientWriteRequest::fhandle, readahead_list::fhandle, FileHandleToStr(), XrdCl::Buffer::GetBuffer(), XrdCl::Log::GetLevel(), XrdCl::DefaultEnv::GetLog(), ClientQueryRequest::infotype, kXR_async, kXR_chmod, kXR_close, kXR_coloc, kXR_delete, kXR_dirlist, kXR_force, kXR_fresh, kXR_locate, kXR_mkdir, kXR_mkdirpath, kXR_mkpath, kXR_mv, kXR_new, kXR_nowait, kXR_open, kXR_open_apnd, kXR_open_read, kXR_open_updt, kXR_ping, kXR_posc, kXR_prepare, kXR_protocol, kXR_Qckscan, kXR_Qcksum, kXR_Qconfig, kXR_Qopaque, kXR_Qopaquf, kXR_QPrep, kXR_Qspace, kXR_QStats, kXR_query, kXR_Qvisa, kXR_Qxattr, kXR_read, kXR_readv, kXR_refresh, kXR_replica, kXR_retstat, kXR_rm, kXR_rmdir, kXR_seqio, kXR_set, kXR_stage, kXR_stat, kXR_sync, kXR_truncate, kXR_vfs, kXR_wmode, kXR_write, ClientChmodRequest::mode, ClientMkdirRequest::mode, ClientOpenRequest::mode, ClientReadRequest::offset, ClientTruncateRequest::offset, ClientWriteRequest::offset, ClientLocateRequest::options, ClientMkdirRequest::options, ClientOpenRequest::options, ClientPrepareRequest::options, ClientStatRequest::options, ClientPrepareRequest::prty, ClientRequestHdr::requestid, ClientReadRequest::rlen, readahead_list::rlen, and XrdCl::Message::SetDescription().
Referenced by XrdCl::MessageUtils::AppendCGI(), XrdCl::FileSystem::ChMod(), XrdCl::FileStateHandler::Close(), XrdCl::FileSystem::DirList(), XrdCl::FileSystem::Locate(), XrdCl::FileSystem::MkDir(), XrdCl::FileSystem::Mv(), XrdCl::FileStateHandler::Open(), XrdCl::FileSystem::Ping(), XrdCl::FileSystem::Prepare(), XrdCl::FileSystem::Protocol(), XrdCl::FileSystem::Query(), XrdCl::FileStateHandler::Read(), XrdCl::FileStateHandler::ReOpenFileAtServer(), XrdCl::FileStateHandler::ReWriteFileHandle(), XrdCl::XRootDMsgHandler::RewriteRequestWait(), XrdCl::FileSystem::Rm(), XrdCl::FileSystem::RmDir(), XrdCl::FileSystem::SendInfo(), XrdCl::FileStateHandler::Stat(), XrdCl::FileSystem::Stat(), XrdCl::FileSystem::StatVFS(), XrdCl::XRootDMsgHandler::SwitchOnRefreshFlag(), XrdCl::FileStateHandler::Sync(), XrdCl::FileStateHandler::Truncate(), XrdCl::FileSystem::Truncate(), XrdCl::FileStateHandler::VectorRead(), and XrdCl::FileStateHandler::Write().
|
virtual |
Check if the message invokes a stream action.
Implements XrdCl::TransportHandler.
References ServerResponseBody_Attn::actnum, ServerResponse::attn, ServerResponse::body, XrdCl::TransportHandler::DigestMsg, XrdCl::Log::Error(), XrdCl::AnyObject::Get(), XrdCl::Buffer::GetBuffer(), XrdCl::DefaultEnv::GetLog(), ServerResponse::hdr, XrdCl::SIDManager::IsTimedOut(), kXR_asynresp, kXR_attn, XrdCl::XRootDChannelInfo::mutex, XrdCl::TransportHandler::NoAction, XrdCl::SIDManager::ReleaseTimedOut(), XrdCl::XRootDChannelInfo::sidManager, ServerResponseHeader::status, ServerResponseHeader::streamid, and XrdCl::XRootDTransportMsg.
|
virtual |
Return a number of streams that should be created.
Implements XrdCl::TransportHandler.
|
virtual |
Return a number of substreams per stream that should be created.
Implements XrdCl::TransportHandler.
References XrdCl::AnyObject::Get(), kXR_isServer, XrdCl::XRootDChannelInfo::mutex, XrdCl::XRootDChannelInfo::serverFlags, and XrdCl::XRootDChannelInfo::stream.
Unmarshall the body of the incoming message.
References ServerResponseBody_Attn::actnum, ServerResponse::attn, ServerResponse::body, ServerResponseHeader::dlen, XrdCl::errInvalidMessage, ServerResponseBody_Error::errnum, ServerResponse::error, ServerResponseBody_Protocol::flags, XrdCl::Buffer::GetBuffer(), ServerResponse::hdr, kXR_attn, kXR_error, kXR_ok, kXR_protocol, kXR_redirect, kXR_wait, kXR_waitresp, ServerResponseBody_Redirect::port, ServerResponse::protocol, ServerResponseBody_Protocol::pval, ServerResponse::redirect, ServerResponseBody_Wait::seconds, ServerResponseBody_Waitresp::seconds, ServerResponseHeader::status, XrdCl::stError, ServerResponse::wait, and ServerResponse::waitresp.
Referenced by XrdCl::XRootDMsgHandler::Process(), ProcessBindResp(), ProcessLogInResp(), and ProcessProtocolResp().
|
static |
Unmarshall the header incoming message.
References ServerResponseHeader::dlen, XrdCl::Buffer::GetBuffer(), and ServerResponseHeader::status.
Referenced by GetHeader(), and XrdCl::XRootDMsgHandler::Process().
Unmarshall the request - sometimes the requests need to be rewritten, so we need to unmarshall them
References ClientRequestHdr::dlen, XrdCl::Buffer::GetBuffer(), ClientRequest::header, MarshallRequest(), and ClientRequestHdr::requestid.
Referenced by XrdCl::XRootDMsgHandler::HandleResponse(), MultiplexSubStream(), XrdCl::XRootDMsgHandler::RewriteRequestRedirect(), XrdCl::XRootDMsgHandler::RewriteRequestWait(), XrdCl::MessageUtils::SendMessage(), XrdCl::XRootDMsgHandler::SwitchOnRefreshFlag(), and XrdCl::XRootDMsgHandler::UpdateTriedCGI().
|
private |
Referenced by GetAuthHandler().
|
private |
Referenced by GetAuthHandler(), and ~XRootDTransport().
1.8.3.1