XrdSecsssKT Class Reference

#include <XrdSecsssKT.hh>

List of all members.

Public Types

enum  xMode

Public Member Functions

void addKey (ktEnt &ktNew)
int delKey (ktEnt &ktDel)
int getKey (ktEnt &ktEql)
ktEntkeyList ()
void Refresh ()
time_t RefrTime ()
int Rewrite (int Keep, int &numKeys, int &numTot, int &numExp)
int Same (const char *path)
void setPath (const char *Path)
 XrdSecsssKT (XrdOucErrInfo *, const char *, xMode, int refr=60 *60)
 ~XrdSecsssKT ()

Static Public Member Functions

static char * genFN ()
static void genKey (char *Buff, int blen)

Private Member Functions

int eMsg (const char *epn, int rc, const char *txt1, const char *txt2=0, const char *txt3=0, const char *txt4=0)
ktEntgetKeyTab (XrdOucErrInfo *eInfo, time_t Mtime, mode_t Amode)
mode_t fileMode (const char *Path)
int isKey (ktEnt &ktRef, ktEnt *ktP, int Full=1)
void keyB2X (ktEnt *theKT, char *buff)
void keyX2B (ktEnt *theKT, char *xKey)
ktEntktDecode0 (XrdOucStream &kTab, XrdOucErrInfo *eInfo)

Private Attributes

XrdSysMutex myMutex
char * ktPath
ktEntktList
time_t ktMtime
xMode ktMode
time_t ktRefT
int kthiID

Static Private Attributes

static int randFD

Classes

class  ktEnt


Detailed Description

Definition at line 22 of file XrdSecsssKT.hh.


Member Enumeration Documentation

enum XrdSecsssKT::xMode

Definition at line 93 of file XrdSecsssKT.hh.


Constructor & Destructor Documentation

XrdSecsssKT::XrdSecsssKT ( XrdOucErrInfo ,
const char *  ,
xMode  ,
int  refr = 60 *60 
)

Definition at line 57 of file XrdSecsssKT.cc.

References eMsg(), getKeyTab(), isAdmin, isClient, kthiID, ktList, ktMode, ktPath, ktRefT, open, randFD, XrdSysThread::Run(), S_IRWXU, stat, and XrdSecsssKTRefresh().

XrdSecsssKT::~XrdSecsssKT (  ) 

Definition at line 108 of file XrdSecsssKT.cc.

References free(), ktList, ktPath, XrdSysMutex::Lock(), myMutex, XrdSecsssKT::ktEnt::Next, and XrdSysMutex::UnLock().


Member Function Documentation

void XrdSecsssKT::addKey ( ktEnt ktNew  ) 

Definition at line 123 of file XrdSecsssKT.cc.

References XrdSecsssKT::ktEnt::ktData::Crt, XrdSecsssKT::ktEnt::Data, genKey(), XrdSecsssKT::ktEnt::ktData::ID, isKey(), kthiID, ktList, RooFitShortHand::L(), XrdSecsssKT::ktEnt::ktData::Len, XrdSecsssKT::ktEnt::Next, and XrdSecsssKT::ktEnt::ktData::Val.

Referenced by XrdSecsssAdmin_addKey().

int XrdSecsssKT::delKey ( ktEnt ktDel  ) 

Definition at line 150 of file XrdSecsssKT.cc.

References isKey(), ktList, and XrdSecsssKT::ktEnt::Next.

Referenced by XrdSecsssAdmin_delKey().

char * XrdSecsssKT::genFN (  )  [static]

Definition at line 210 of file XrdSecsssKT.cc.

References getenv(), and snprintf.

Referenced by XrdSecProtocolsss::Load_Client(), XrdSecProtocolsss::Load_Server(), and main().

void XrdSecsssKT::genKey ( char *  Buff,
int  blen 
) [static]

Definition at line 229 of file XrdSecsssKT.cc.

References gettimeofday(), i, randFD, and read.

Referenced by addKey(), and XrdSecProtocolsss::Encode().

int XrdSecsssKT::getKey ( ktEnt ktEql  ) 

Definition at line 172 of file XrdSecsssKT.cc.

References XrdSecsssKT::ktEnt::Data, XrdSecsssKT::ktEnt::ktData::Exp, XrdSecsssKT::ktEnt::ktData::ID, ktList, XrdSysMutex::Lock(), myMutex, XrdSecsssKT::ktEnt::ktData::Name, XrdSecsssKT::ktEnt::Next, and XrdSysMutex::UnLock().

Referenced by XrdSecProtocolsss::Decode(), and XrdSecProtocolsss::getCredentials().

ktEnt* XrdSecsssKT::keyList (  )  [inline]

Definition at line 80 of file XrdSecsssKT.hh.

References ktList.

Referenced by XrdSecsssAdmin_delKey(), XrdSecsssAdmin_insKey(), and XrdSecsssAdmin_lstKey().

void XrdSecsssKT::Refresh (  ) 

Definition at line 272 of file XrdSecsssKT.cc.

References eMsg(), XrdOucErrInfo::getErrInfo(), getKeyTab(), ktList, ktMtime, ktPath, XrdSysMutex::Lock(), myMutex, XrdSecsssKT::ktEnt::Next, stat, and XrdSysMutex::UnLock().

Referenced by XrdSecsssKTRefresh().

time_t XrdSecsssKT::RefrTime (  )  [inline]

Definition at line 84 of file XrdSecsssKT.hh.

References ktRefT.

Referenced by XrdSecsssKTRefresh().

int XrdSecsssKT::Rewrite ( int  Keep,
int &  numKeys,
int &  numTot,
int &  numExp 
)

Definition at line 300 of file XrdSecsssKT.cc.

References close, XrdSecsssKT::ktEnt::ktData::Crt, XrdSecsssKT::ktEnt::Data, XrdSecsssKT::ktEnt::ktData::Exp, fileMode(), XrdSecsssKT::ktEnt::ktData::Grup, XrdSecsssKT::ktEnt::ktData::ID, isKey(), keyB2X(), ktList, ktPath, XrdSecsssKT::ktEnt::ktData::Len, XrdOucUtils::makePath(), n, XrdSecsssKT::ktEnt::ktData::Name, XrdSecsssKT::ktEnt::Next, XrdSecsssKT::ktEnt::NUG(), open, rename, rindex, S_IRGRP, S_IROTH, S_IRWXU, S_IXGRP, S_IXOTH, sprintf(), strcat(), strcpy(), unlink, XrdSecsssKT::ktEnt::ktData::User, and write.

Referenced by XrdSecsssAdmin_addKey(), XrdSecsssAdmin_delKey(), and XrdSecsssAdmin_insKey().

int XrdSecsssKT::Same ( const char *  path  )  [inline]

Definition at line 88 of file XrdSecsssKT.hh.

References ktPath.

Referenced by XrdSecProtocolsss::Init_Client().

void XrdSecsssKT::setPath ( const char *  Path  )  [inline]

Definition at line 90 of file XrdSecsssKT.hh.

References free(), and ktPath.

Referenced by XrdSecsssAdmin_insKey().

int XrdSecsssKT::eMsg ( const char *  epn,
int  rc,
const char *  txt1,
const char *  txt2 = 0,
const char *  txt3 = 0,
const char *  txt4 = 0 
) [private]

Definition at line 367 of file XrdSecsssKT.cc.

References strerror().

Referenced by getKeyTab(), Refresh(), and XrdSecsssKT().

XrdSecsssKT::ktEnt * XrdSecsssKT::getKeyTab ( XrdOucErrInfo eInfo,
time_t  Mtime,
mode_t  Amode 
) [private]

Definition at line 386 of file XrdSecsssKT.cc.

References XrdOucStream::Attach(), XrdOucStream::Close(), XrdSecsssKT::ktEnt::ktData::Crt, XrdSecsssKT::ktEnt::Data, eMsg(), XrdSecsssKT::ktEnt::ktData::Exp, fileMode(), XrdOucErrInfo::getErrText(), XrdOucStream::GetLine(), XrdOucStream::GetToken(), XrdSecsssKT::ktEnt::ktData::ID, isAdmin, isClient, isKey(), ktDecode0(), kthiID, ktMode, ktMtime, ktPath, XrdOucStream::LastError(), XrdSecsssKT::ktEnt::Next, open, S_IRWXG, XrdSecsssKT::ktEnt::Set(), XrdOucErrInfo::setErrCode(), XrdOucErrInfo::setErrInfo(), sprintf(), STDIN_FILENO, and RooFit::What().

Referenced by Refresh(), and XrdSecsssKT().

mode_t XrdSecsssKT::fileMode ( const char *  Path  )  [private]

Definition at line 486 of file XrdSecsssKT.cc.

References n, S_IRGRP, S_IRUSR, and S_IWUSR.

Referenced by getKeyTab(), and Rewrite().

int XrdSecsssKT::isKey ( ktEnt ktRef,
ktEnt ktP,
int  Full = 1 
) [private]

Definition at line 498 of file XrdSecsssKT.cc.

References XrdSecsssKT::ktEnt::Data, XrdSecsssKT::ktEnt::ktData::Grup, XrdSecsssKT::ktEnt::ktData::ID, XrdSecsssKT::ktEnt::ktData::Name, and XrdSecsssKT::ktEnt::ktData::User.

Referenced by addKey(), delKey(), getKeyTab(), and Rewrite().

void XrdSecsssKT::keyB2X ( ktEnt theKT,
char *  buff 
) [private]

Definition at line 512 of file XrdSecsssKT.cc.

References XrdSecsssKT::ktEnt::Data, XrdSecsssKT::ktEnt::ktData::Len, Val, and XrdSecsssKT::ktEnt::ktData::Val.

Referenced by Rewrite().

void XrdSecsssKT::keyX2B ( ktEnt theKT,
char *  xKey 
) [private]

Definition at line 532 of file XrdSecsssKT.cc.

References XrdSecsssKT::ktEnt::Data, XrdSecsssKT::ktEnt::ktData::Len, XrdSecsssKT::ktEnt::maxKLen, n, and XrdSecsssKT::ktEnt::ktData::Val.

Referenced by ktDecode0().

XrdSecsssKT::ktEnt * XrdSecsssKT::ktDecode0 ( XrdOucStream kTab,
XrdOucErrInfo eInfo 
) [private]

Definition at line 566 of file XrdSecsssKT.cc.

References XrdSecsssKT::ktEnt::anyGRP, XrdSecsssKT::ktEnt::anyUSR, XrdSecsssKT::ktEnt::Data, TMath::Exp(), XrdOucStream::GetToken(), XrdSecsssKT::ktEnt::ktData::Grup, XrdSecsssKT::ktEnt::GrupSZ, i, keyX2B(), XrdSecsssKT::ktEnt::maxKLen, XrdSecsssKT::ktEnt::ktData::Name, XrdSecsssKT::ktEnt::NameSZ, offsetof, XrdSecsssKT::ktEnt::ktData::Opts, TMath::Prob(), XrdOucErrInfo::setErrInfo(), size_t, strcpy(), strtoll, XrdSecsssKT::ktEnt::ktData::User, XrdSecsssKT::ktEnt::UserSZ, XrdSecsssKT::ktEnt::usrGRP, Val, and RooFit::What().

Referenced by getKeyTab().


Member Data Documentation

XrdSysMutex XrdSecsssKT::myMutex [private]

Definition at line 108 of file XrdSecsssKT.hh.

Referenced by getKey(), Refresh(), and ~XrdSecsssKT().

char* XrdSecsssKT::ktPath [private]

Definition at line 109 of file XrdSecsssKT.hh.

Referenced by getKeyTab(), Refresh(), Rewrite(), Same(), setPath(), XrdSecsssKT(), and ~XrdSecsssKT().

ktEnt* XrdSecsssKT::ktList [private]

Definition at line 110 of file XrdSecsssKT.hh.

Referenced by addKey(), delKey(), getKey(), keyList(), Refresh(), Rewrite(), XrdSecsssKT(), and ~XrdSecsssKT().

time_t XrdSecsssKT::ktMtime [private]

Definition at line 111 of file XrdSecsssKT.hh.

Referenced by getKeyTab(), and Refresh().

xMode XrdSecsssKT::ktMode [private]

Definition at line 112 of file XrdSecsssKT.hh.

Referenced by getKeyTab(), and XrdSecsssKT().

time_t XrdSecsssKT::ktRefT [private]

Definition at line 113 of file XrdSecsssKT.hh.

Referenced by RefrTime(), and XrdSecsssKT().

int XrdSecsssKT::kthiID [private]

Definition at line 114 of file XrdSecsssKT.hh.

Referenced by addKey(), getKeyTab(), and XrdSecsssKT().

int XrdSecsssKT::randFD [static, private]

Definition at line 115 of file XrdSecsssKT.hh.

Referenced by genKey(), and XrdSecsssKT().


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