#include <XrdSecsssKT.hh>
Public Types | |
enum | xMode |
Public Member Functions | |
void | addKey (ktEnt &ktNew) |
int | delKey (ktEnt &ktDel) |
int | getKey (ktEnt &ktEql) |
ktEnt * | keyList () |
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) |
ktEnt * | getKeyTab (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) |
ktEnt * | ktDecode0 (XrdOucStream &kTab, XrdOucErrInfo *eInfo) |
Private Attributes | |
XrdSysMutex | myMutex |
char * | ktPath |
ktEnt * | ktList |
time_t | ktMtime |
xMode | ktMode |
time_t | ktRefT |
int | kthiID |
Static Private Attributes | |
static int | randFD |
Classes | |
class | ktEnt |
Definition at line 22 of file XrdSecsssKT.hh.
enum XrdSecsssKT::xMode |
Definition at line 93 of file XrdSecsssKT.hh.
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().
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().
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().
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] |
xMode XrdSecsssKT::ktMode [private] |
time_t XrdSecsssKT::ktRefT [private] |
int XrdSecsssKT::kthiID [private] |
Definition at line 114 of file XrdSecsssKT.hh.
Referenced by addKey(), getKeyTab(), and XrdSecsssKT().
int XrdSecsssKT::randFD [static, private] |