|
xrootd
|
#include <XrdSecTLayer.hh>


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 |
| virtual int | Authenticate (XrdSecCredentials *cred, XrdSecParameters **parms, XrdOucErrInfo *einfo=0) |
| virtual XrdSecCredentials * | getCredentials (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 |
| XrdOucErrInfo * | eDest |
| struct XrdSecTLayer::TLayerRR | Hdr |
Static Private Attributes | |
| static const int | buffSz = 8192 |
| static const int | hdrSz = sizeof(TLayerRR) |
| static const int | dataSz = buffSz - hdrSz |
| virtual XrdSecTLayer::~XrdSecTLayer | ( | ) | [inline, protected, virtual] |
| int XrdSecTLayer::Authenticate | ( | XrdSecCredentials * | cred, |
| XrdSecParameters ** | parms, | ||
| XrdOucErrInfo * | einfo = 0 |
||
| ) | [virtual] |
Implements XrdSecProtocol.
References dataSz, eDest, myFD, bootUp(), isServer, XrdSecBuffer::size, hdrSz, secError(), XrdSecBuffer::buffer, write(), Read(), ECONNRESET, secDone(), Hdr, XrdSecTLayer::TLayerRR::protCode, Tcur, and Tmax.
| int XrdSecTLayer::bootUp | ( | Initiator | Who | ) | [private] |
References secError(), myFD, urFD, Responder, fcntl(), F_SETFD, FD_CLOEXEC, XrdSysThread::Run(), secTid, XrdSecTLayerBootUp(), XRDSYSTHREAD_HOLD, and close.
Referenced by getCredentials(), and Authenticate().
| virtual void XrdSecTLayer::Delete | ( | ) | [pure virtual] |
Implements XrdSecProtocol.
| XrdSecCredentials * XrdSecTLayer::getCredentials | ( | XrdSecParameters * | parm = 0, |
| XrdOucErrInfo * | einfo = 0 |
||
| ) | [virtual] |
Implements XrdSecProtocol.
References dataSz, eDest, bootUp(), isClient, Starter, isServer, Hdr, XrdSecTLayer::TLayerRR::protCode, hdrSz, XrdSecBuffer::size, secError(), XrdSecBuffer::buffer, write(), myFD, Read(), ECONNRESET, secDone(), Tcur, and Tmax.
| int XrdSecTLayer::Read | ( | int | FD, |
| char * | Buff, | ||
| int | rdLen | ||
| ) | [private] |
References POLLIN, POLLRDNORM, POLLHUP, Tcur, poll(), and read().
Referenced by getCredentials(), and Authenticate().
| virtual void XrdSecTLayer::secClient | ( | int | theFD, |
| XrdOucErrInfo * | einfo | ||
| ) | [pure virtual] |
Referenced by secXeq().
| int XrdSecTLayer::secDone | ( | ) | [private] |
References secDrain(), eCode, secError(), and eText.
Referenced by getCredentials(), and Authenticate().
| void XrdSecTLayer::secDrain | ( | ) | [private] |
References myFD, close, mySem, and XrdSysSemaphore::Wait().
Referenced by secDone(), and secError().
| const char * XrdSecTLayer::secErrno | ( | int | rc, |
| char * | buff | ||
| ) | [private] |
Referenced by secError().
| void XrdSecTLayer::secError | ( | const char * | Msg, |
| int | rc, | ||
| int | iserrno = 1 |
||
| ) | [private] |
References Hdr, XrdSecTLayer::TLayerRR::protName, secErrno(), eDest, XrdOucErrInfo::setErrInfo(), and secDrain().
Referenced by getCredentials(), Authenticate(), bootUp(), and secDone().
| virtual void XrdSecTLayer::secServer | ( | int | theFD, |
| XrdOucErrInfo * | einfo | ||
| ) | [pure virtual] |
Referenced by secXeq().
| void XrdSecTLayer::secXeq | ( | ) |
References Responder, isClient, secClient(), urFD, secServer(), XrdOucErrInfo::getErrText(), eCode, eText, close, mySem, and XrdSysSemaphore::Post().
Referenced by XrdSecTLayerBootUp().
const int XrdSecTLayer::buffSz = 8192 [static, private] |
const int XrdSecTLayer::dataSz = buffSz - hdrSz [static, private] |
Referenced by getCredentials(), and Authenticate().
int XrdSecTLayer::eCode [private] |
XrdOucErrInfo* XrdSecTLayer::eDest [private] |
Referenced by getCredentials(), Authenticate(), and secError().
char* XrdSecTLayer::eText [private] |
Referenced by secDone(), secXeq(), and ~XrdSecTLayer().
struct XrdSecTLayer::TLayerRR XrdSecTLayer::Hdr [private] |
Referenced by XrdSecTLayer(), getCredentials(), Authenticate(), and secError().
const int XrdSecTLayer::hdrSz = sizeof(TLayerRR) [static, private] |
Referenced by getCredentials(), and Authenticate().
int XrdSecTLayer::myFD [private] |
Referenced by getCredentials(), Authenticate(), bootUp(), secDrain(), and ~XrdSecTLayer().
XrdSysSemaphore XrdSecTLayer::mySem [private] |
Referenced by secDrain(), and secXeq().
Initiator XrdSecTLayer::Responder [private] |
pthread_t XrdSecTLayer::secTid [protected] |
Referenced by bootUp().
Initiator XrdSecTLayer::Starter [private] |
Referenced by getCredentials().
int XrdSecTLayer::Tcur [private] |
Referenced by getCredentials(), Authenticate(), and Read().
int XrdSecTLayer::Tmax [private] |
Referenced by getCredentials(), and Authenticate().
int XrdSecTLayer::urFD [private] |
1.7.5