XrdSecTLayer Class Reference

#include <XrdSecTLayer.hh>

Inheritance diagram for XrdSecTLayer:
Inheritance graph
[legend]
Collaboration diagram for XrdSecTLayer:
Collaboration graph
[legend]

List of all members.

Classes

struct  TLayerRR

Public Types

enum  Initiator { isClient = 0, isServer }

Public Member Functions

 XrdSecTLayer (const char *pName, Initiator who1st=isClient)
virtual void secClient (int theFD, XrdOucErrInfo *einfo)=0
virtual void secServer (int theFD, XrdOucErrInfo *einfo)=0
virtual void Delete ()=0
 Delete the protocol object. DO NOT use C++ delete() on this object.
virtual int Authenticate (XrdSecCredentials *cred, XrdSecParameters **parms, XrdOucErrInfo *einfo=0)
virtual XrdSecCredentialsgetCredentials (XrdSecParameters *parm=0, XrdOucErrInfo *einfo=0)
void secXeq ()

Protected Member Functions

virtual ~XrdSecTLayer ()

Protected Attributes

pthread_t secTid

Private Member Functions

int bootUp (Initiator Who)
int Read (int FD, char *Buff, int rdLen)
int secDone ()
void secDrain ()
const char * secErrno (int rc, char *buff)
void secError (const char *Msg, int rc, int iserrno=1)

Private Attributes

XrdSysSemaphore mySem
Initiator Starter
Initiator Responder
int myFD
int urFD
int Tmax
int Tcur
int eCode
char * eText
XrdOucErrInfoeDest
struct XrdSecTLayer::TLayerRR Hdr

Static Private Attributes

static const int buffSz = 8192
static const int hdrSz = sizeof(TLayerRR)
static const int dataSz = buffSz - hdrSz

Member Enumeration Documentation

Enumerator:
isClient 
isServer 

Constructor & Destructor Documentation

XrdSecTLayer::XrdSecTLayer ( const char *  pName,
Initiator  who1st = isClient 
)
virtual XrdSecTLayer::~XrdSecTLayer (  )  [inline, protected, virtual]

References close, eText, and myFD.


Member Function Documentation

virtual int XrdSecTLayer::Authenticate ( XrdSecCredentials cred,
XrdSecParameters **  parms,
XrdOucErrInfo einfo = 0 
) [virtual]

Authenticate a client.

Parameters:
cred Credentials supplied by the client.
parms Place where the address of additional authentication data is to be placed for another autrhentication handshake.
einfo The error information object where error messages should be placed. The messages are returned to the client. Should einfo be null, messages should be written to stderr.
Returns:
> 0 -> parms present (more authentication needed) = 0 -> Entity present (authentication suceeded) < 0 -> einfo present (error has occured)

Implements XrdSecProtocol.

int XrdSecTLayer::bootUp ( Initiator  Who  )  [private]
virtual void XrdSecTLayer::Delete (  )  [pure virtual]

Delete the protocol object. DO NOT use C++ delete() on this object.

Implements XrdSecProtocol.

virtual XrdSecCredentials* XrdSecTLayer::getCredentials ( XrdSecParameters parm = 0,
XrdOucErrInfo einfo = 0 
) [virtual]

Generate client credentials to be used in the authentication process.

Parameters:
parm Pointer to the information returned by the server either in the initial login response or the authmore response.
einfo The error information object where error messages should be placed. The messages are returned to the client. Should einfo be null, messages should be written to stderr.
Returns:
Success: Pointer to credentials to sent to the server. The caller is responsible for deleting the object. Failure: Null pointer with einfo, if supplied, containing the reason for the failure.

Implements XrdSecProtocol.

int XrdSecTLayer::Read ( int  FD,
char *  Buff,
int  rdLen 
) [private]
virtual void XrdSecTLayer::secClient ( int  theFD,
XrdOucErrInfo einfo 
) [pure virtual]
int XrdSecTLayer::secDone (  )  [private]
void XrdSecTLayer::secDrain (  )  [private]
const char* XrdSecTLayer::secErrno ( int  rc,
char *  buff 
) [private]
void XrdSecTLayer::secError ( const char *  Msg,
int  rc,
int  iserrno = 1 
) [private]
virtual void XrdSecTLayer::secServer ( int  theFD,
XrdOucErrInfo einfo 
) [pure virtual]
void XrdSecTLayer::secXeq (  ) 

Member Data Documentation

const int XrdSecTLayer::buffSz = 8192 [static, private]
const int XrdSecTLayer::dataSz = buffSz - hdrSz [static, private]
int XrdSecTLayer::eCode [private]
char* XrdSecTLayer::eText [private]

Referenced by ~XrdSecTLayer().

const int XrdSecTLayer::hdrSz = sizeof(TLayerRR) [static, private]
int XrdSecTLayer::myFD [private]

Referenced by ~XrdSecTLayer().

pthread_t XrdSecTLayer::secTid [protected]
int XrdSecTLayer::Tcur [private]
int XrdSecTLayer::Tmax [private]
int XrdSecTLayer::urFD [private]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 7 Apr 2019 for xrootd by  doxygen 1.6.1