XrdSecTLayer Class Reference

#include <XrdSecTLayer.hh>

Inheritance diagram for XrdSecTLayer:

XrdSecProtocol XrdSecProtocolssl List of all members.

Public Types

enum  Initiator

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
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
XrdSecTLayer::TLayerRR Hdr

Static Private Attributes

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

Classes

struct  TLayerRR

Detailed Description

Definition at line 46 of file XrdSecTLayer.hh.


Member Enumeration Documentation

enum XrdSecTLayer::Initiator

Definition at line 56 of file XrdSecTLayer.hh.


Constructor & Destructor Documentation

XrdSecTLayer::XrdSecTLayer ( const char *  pName,
Initiator  who1st = isClient 
)

Definition at line 37 of file XrdSecTLayer.cc.

References Hdr.

virtual XrdSecTLayer::~XrdSecTLayer (  )  [inline, protected, virtual]

Definition at line 104 of file XrdSecTLayer.hh.

References close, eText, free(), and myFD.


Member Function Documentation

virtual void XrdSecTLayer::secClient ( int  theFD,
XrdOucErrInfo einfo 
) [pure virtual]

Referenced by secXeq().

virtual void XrdSecTLayer::secServer ( int  theFD,
XrdOucErrInfo einfo 
) [pure virtual]

Referenced by secXeq().

virtual void XrdSecTLayer::Delete (  )  [pure virtual]

Implements XrdSecProtocol.

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

Implements XrdSecProtocol.

Definition at line 124 of file XrdSecTLayer.cc.

References bootUp(), XrdSecBuffer::buffer, dataSz, ECONNRESET, eDest, XrdSecTLayer::TLayerRR::endData, Hdr, hdrSz, isServer, malloc(), myFD, XrdSecTLayer::TLayerRR::protCode, Read(), secDone(), secError(), XrdSecBuffer::size, Tcur, Tmax, write, and XrdSecTLayer::TLayerRR::xfrData.

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

Implements XrdSecProtocol.

Definition at line 56 of file XrdSecTLayer.cc.

References bootUp(), XrdSecBuffer::buffer, dataSz, ECONNRESET, eDest, XrdSecTLayer::TLayerRR::endData, Hdr, hdrSz, isClient, isServer, malloc(), myFD, XrdSecTLayer::TLayerRR::protCode, Read(), secDone(), secError(), XrdSecBuffer::size, Starter, Tcur, Tmax, write, and XrdSecTLayer::TLayerRR::xfrData.

void XrdSecTLayer::secXeq (  ) 

Definition at line 325 of file XrdSecTLayer.cc.

References close, eCode, eText, free(), XrdOucErrInfo::getErrText(), isClient, mySem, XrdSysSemaphore::Post(), Responder, secClient(), secServer(), and urFD.

Referenced by XrdSecTLayerBootUp().

int XrdSecTLayer::bootUp ( Initiator  Who  )  [private]

Definition at line 195 of file XrdSecTLayer.cc.

References close, F_SETFD, fcntl(), FD_CLOEXEC, myFD, Responder, XrdSysThread::Run(), secError(), secTid, urFD, XrdSecTLayerBootUp(), and XRDSYSTHREAD_HOLD.

Referenced by Authenticate(), and getCredentials().

int XrdSecTLayer::Read ( int  FD,
char *  Buff,
int  rdLen 
) [private]

Definition at line 230 of file XrdSecTLayer.cc.

References poll(), POLLHUP, POLLIN, POLLRDNORM, read, and Tcur.

Referenced by Authenticate(), and getCredentials().

int XrdSecTLayer::secDone (  )  [private]

Definition at line 264 of file XrdSecTLayer.cc.

References eCode, eText, secDrain(), and secError().

Referenced by Authenticate(), and getCredentials().

void XrdSecTLayer::secDrain (  )  [private]

Definition at line 285 of file XrdSecTLayer.cc.

References close, myFD, mySem, and XrdSysSemaphore::Wait().

Referenced by secDone(), and secError().

const char * XrdSecTLayer::secErrno ( int  rc,
char *  buff 
) [private]

Definition at line 297 of file XrdSecTLayer.cc.

References sprintf().

Referenced by secError().

void XrdSecTLayer::secError ( const char *  Msg,
int  rc,
int  iserrno = 1 
) [private]

Definition at line 307 of file XrdSecTLayer.cc.

References eDest, Hdr, i, n, XrdSecTLayer::TLayerRR::protName, secDrain(), secErrno(), XrdOucErrInfo::setErrInfo(), and strerror().

Referenced by Authenticate(), bootUp(), getCredentials(), and secDone().


Member Data Documentation

pthread_t XrdSecTLayer::secTid [protected]

Definition at line 102 of file XrdSecTLayer.hh.

Referenced by bootUp(), and XrdSecProtocolssl::Delete().

XrdSysSemaphore XrdSecTLayer::mySem [private]

Definition at line 117 of file XrdSecTLayer.hh.

Referenced by secDrain(), and secXeq().

Initiator XrdSecTLayer::Starter [private]

Definition at line 118 of file XrdSecTLayer.hh.

Referenced by getCredentials().

Initiator XrdSecTLayer::Responder [private]

Definition at line 119 of file XrdSecTLayer.hh.

Referenced by bootUp(), and secXeq().

int XrdSecTLayer::myFD [private]

Definition at line 120 of file XrdSecTLayer.hh.

Referenced by Authenticate(), bootUp(), getCredentials(), secDrain(), and ~XrdSecTLayer().

int XrdSecTLayer::urFD [private]

Definition at line 121 of file XrdSecTLayer.hh.

Referenced by bootUp(), and secXeq().

int XrdSecTLayer::Tmax [private]

Definition at line 122 of file XrdSecTLayer.hh.

Referenced by Authenticate(), and getCredentials().

int XrdSecTLayer::Tcur [private]

Definition at line 123 of file XrdSecTLayer.hh.

Referenced by Authenticate(), getCredentials(), and Read().

int XrdSecTLayer::eCode [private]

Definition at line 124 of file XrdSecTLayer.hh.

Referenced by secDone(), and secXeq().

char* XrdSecTLayer::eText [private]

Definition at line 125 of file XrdSecTLayer.hh.

Referenced by secDone(), secXeq(), and ~XrdSecTLayer().

XrdOucErrInfo* XrdSecTLayer::eDest [private]

Definition at line 126 of file XrdSecTLayer.hh.

Referenced by Authenticate(), getCredentials(), and secError().

struct XrdSecTLayer::TLayerRR XrdSecTLayer::Hdr [private]

Referenced by Authenticate(), getCredentials(), secError(), and XrdSecTLayer().

const int XrdSecTLayer::buffSz = 8192 [static, private]

Definition at line 137 of file XrdSecTLayer.hh.

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

Definition at line 138 of file XrdSecTLayer.hh.

Referenced by Authenticate(), and getCredentials().

const int XrdSecTLayer::dataSz = buffSz - hdrSz [static, private]

Definition at line 139 of file XrdSecTLayer.hh.

Referenced by Authenticate(), and getCredentials().


The documentation for this class was generated from the following files:
Generated on Tue Jul 5 16:50:46 2011 for ROOT_528-00b_version by  doxygen 1.5.1