25#ifndef __XRD_CL_XROOTD_TRANSPORT_HH__
26#define __XRD_CL_XROOTD_TRANSPORT_HH__
41 struct XRootDChannelInfo;
42 struct PluginUnloadHandler;
227 uint16_t subStreamId );
247 std::ostringstream o;
277 XRootDChannelInfo *info );
320 XRootDChannelInfo *info,
327 XRootDChannelInfo *info,
334 XRootDChannelInfo *info,
341 XRootDChannelInfo *info );
347 XRootDChannelInfo *info );
356 XRootDChannelInfo *info );
362 XRootDChannelInfo *info );
368 XRootDChannelInfo *info );
374 XRootDChannelInfo *info );
380 XRootDChannelInfo *info );
386 XRootDChannelInfo *info );
393 XRootDChannelInfo *info );
414 XRootDChannelInfo *info );
420 XRootDChannelInfo *info );
unsigned char kXR_char
Definition XPtypes.hh:65
XrdSecProtocol *(* XrdSecGetProt_t)(const char *hostname, XrdNetAddrInfo &endPoint, XrdSecParameters §oken, XrdOucErrInfo *einfo)
Typedef to simplify the encoding of methods returning XrdSecProtocol.
Definition XrdSecInterface.hh:483
Definition XrdClAnyObject.hh:33
const char * GetBuffer(uint32_t offset=0) const
Get the message buffer.
Definition XrdClBuffer.hh:72
The message representation used throughout the system.
Definition XrdClMessage.hh:30
void SetDescription(const std::string &description)
Set the description of the message.
Definition XrdClMessage.hh:87
void SetIsMarshalled(bool isMarshalled)
Set the marshalling status.
Definition XrdClMessage.hh:79
A network socket.
Definition XrdClSocket.hh:43
Perform the handshake and the authentication for each physical stream.
Definition XrdClPostMasterInterfaces.hh:310
URL representation.
Definition XrdClURL.hh:31
Request status.
Definition XrdClXRootDResponses.hh:219
XRootD transport handler.
Definition XrdClXRootDTransport.hh:48
void InitProtocolReq(ClientProtocolRequest *request, XRootDChannelInfo *info, kXR_char expect)
virtual bool NeedControlConnection()
Definition XrdClXRootDTransport.hh:167
static void SetDescription(Message *msg)
Get the description of a message.
Definition XrdClXRootDTransport.hh:245
Status CleanUpProtection(XRootDChannelInfo *info)
virtual void InitializeChannel(const URL &url, AnyObject &channelData)
Initialize channel.
static std::string FileHandleToStr(const unsigned char handle[4])
XRootDTransport()
Constructor.
virtual XRootDStatus GetHeader(Message &message, Socket *socket)
virtual Status GetSignature(Message *toSign, Message *&sign, AnyObject &channelData)
Get signature for given message.
static void UnMarshallHeader(Message &msg)
Unmarshall the header incoming message.
virtual XRootDStatus GetMore(Message &message, Socket *socket)
virtual bool NeedEncryption(HandShakeData *handShakeData, AnyObject &channelData)
virtual void MessageSent(Message *msg, uint16_t subStream, uint32_t bytesSent, AnyObject &channelData)
Notify the transport about a message having been sent.
Message * GenerateInitialHSProtocol(HandShakeData *hsData, XRootDChannelInfo *info, kXR_char expect)
XRootDStatus HandShakeParallel(HandShakeData *handShakeData, AnyObject &channelData)
virtual bool HandShakeDone(HandShakeData *handShakeData, AnyObject &channelData)
Status CleanUpAuthentication(XRootDChannelInfo *info)
XRootDStatus ProcessProtocolResp(HandShakeData *hsData, XRootDChannelInfo *info)
Message * GenerateLogIn(HandShakeData *hsData, XRootDChannelInfo *info)
XRootDStatus HandShakeMain(HandShakeData *handShakeData, AnyObject &channelData)
~XRootDTransport()
Destructor.
virtual void WaitBeforeExit()
Wait until the program can safely exit.
Status ProcessEndSessionResp(HandShakeData *hsData, XRootDChannelInfo *info)
XRootDStatus DoAuthentication(HandShakeData *hsData, XRootDChannelInfo *info)
static std::string ServerFlagsToStr(uint32_t flags)
PluginUnloadHandler * pSecUnloadHandler
Definition XrdClXRootDTransport.hh:433
static XRootDStatus UnMarshalStatusBody(Message &msg, uint16_t reqType)
Unmarshall the body of the status response.
Message * GenerateProtocol(HandShakeData *hsData, XRootDChannelInfo *info, kXR_char expect)
static void LogErrorResponse(const Message &msg)
Log server error response.
XRootDStatus ProcessProtocolBody(char *bodybuff, size_t bodysize, XRootDChannelInfo *info)
virtual Status Query(uint16_t query, AnyObject &result, AnyObject &channelData)
Query the channel.
XRootDStatus ProcessLogInResp(HandShakeData *hsData, XRootDChannelInfo *info)
virtual uint16_t SubStreamNumber(AnyObject &channelData)
Return a number of substreams per stream that should be created.
virtual PathID MultiplexSubStream(Message *msg, AnyObject &channelData, PathID *hint=0)
static uint16_t NbConnectedStrm(AnyObject &channelData)
Number of currently connected data streams.
virtual PathID Multiplex(Message *msg, AnyObject &channelData, PathID *hint=0)
virtual XRootDStatus GetBody(Message &message, Socket *socket)
virtual uint32_t MessageReceived(Message &msg, uint16_t subStream, AnyObject &channelData)
Check if the message invokes a stream action.
XrdSecGetProt_t GetAuthHandler()
Message * GenerateEndSession(HandShakeData *hsData, XRootDChannelInfo *info)
virtual void DecFileInstCnt(AnyObject &channelData)
Decrement file object instance count bound to this channel.
virtual XRootDStatus HandShake(HandShakeData *handShakeData, AnyObject &channelData)
HandShake.
Message * GenerateBind(HandShakeData *hsData, XRootDChannelInfo *info)
XRootDStatus ProcessBindResp(HandShakeData *hsData, XRootDChannelInfo *info)
static void GenerateDescription(char *msg, std::ostringstream &o)
Get the description of a message.
virtual Status GetSignature(Message *toSign, Message *&sign, XRootDChannelInfo *info)
Get signature for given message.
static XRootDStatus UnMarshallBody(Message *msg, uint16_t reqType)
Unmarshall the body of the incoming message.
static XRootDStatus UnMarchalStatusMore(Message &msg)
Unmarshall the correction-segment of the status response for pgwrite.
XRootDStatus ProcessServerHS(HandShakeData *hsData, XRootDChannelInfo *info)
virtual Status IsStreamBroken(time_t inactiveTime, AnyObject &channelData)
friend struct PluginUnloadHandler
Definition XrdClXRootDTransport.hh:432
virtual bool IsStreamTTLElapsed(time_t time, AnyObject &channelData)
Check if the stream should be disconnected.
static XRootDStatus MarshallRequest(char *msg)
Marshal the outgoing message.
static XRootDStatus MarshallRequest(Message *msg)
Marshal the outgoing message.
Definition XrdClXRootDTransport.hh:175
XRootDStatus GetCredentials(XrdSecCredentials *&credentials, HandShakeData *hsData, XRootDChannelInfo *info)
static XRootDStatus UnMarshallRequest(Message *msg)
virtual URL GetBindPreference(const URL &url, AnyObject &channelData)
Get bind preference for the next data stream.
virtual void Disconnect(AnyObject &channelData, uint16_t subStreamId)
The stream has been disconnected, do the cleanups.
virtual void FinalizeChannel(AnyObject &channelData)
Finalize channel.
Definition XrdSecProtect.hh:56
Definition XrdSysPlugin.hh:53
Definition XrdClAction.hh:34
Definition XProtocol.hh:555
Data structure that carries the handshake information.
Definition XrdClPostMasterInterfaces.hh:244
Definition XrdClPostMasterInterfaces.hh:269
Procedure execution status.
Definition XrdClStatus.hh:115
Generic structure to pass security information back and forth.
Definition XrdSecInterface.hh:51