xrootd
|
#include <XrdSecsssKT.hh>
Classes | |
class | ktEnt |
Public Types | |
enum | xMode { isAdmin = 0, isClient, isServer } |
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 = -1 |
enum XrdSecsssKT::xMode |
XrdSecsssKT::XrdSecsssKT | ( | XrdOucErrInfo * | eInfo, |
const char * | kPath, | ||
xMode | oMode, | ||
int | refr = 60*60 |
||
) |
XrdSecsssKT::~XrdSecsssKT | ( | ) |
References ktList, ktPath, XrdSysMutex::Lock(), myMutex, XrdSecsssKT::ktEnt::Next, and XrdSysMutex::UnLock().
void XrdSecsssKT::addKey | ( | ktEnt & | ktNew | ) |
int XrdSecsssKT::delKey | ( | ktEnt & | ktDel | ) |
References isKey(), ktList, and XrdSecsssKT::ktEnt::Next.
Referenced by XrdSecsssAdmin_delKey().
int XrdSecsssKT::eMsg | ( | const char * | epn, |
int | rc, | ||
const char * | txt1, | ||
const char * | txt2 = 0 , |
||
const char * | txt3 = 0 , |
||
const char * | txt4 = 0 |
||
) | [private] |
Referenced by getKeyTab(), Refresh(), and XrdSecsssKT().
mode_t XrdSecsssKT::fileMode | ( | const char * | Path | ) | [private] |
References S_IRGRP, S_IRUSR, and S_IWUSR.
Referenced by getKeyTab(), and Rewrite().
char * XrdSecsssKT::genFN | ( | ) | [static] |
References snprintf.
Referenced by XrdSecProtocolsss::Load_Client(), XrdSecProtocolsss::Load_Server(), and main().
void XrdSecsssKT::genKey | ( | char * | Buff, |
int | blen | ||
) | [static] |
References gettimeofday(), randFD, and read().
Referenced by addKey(), and XrdSecProtocolsss::Encode().
int XrdSecsssKT::getKey | ( | ktEnt & | ktEql | ) |
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().
XrdSecsssKT::ktEnt * XrdSecsssKT::getKeyTab | ( | XrdOucErrInfo * | eInfo, |
time_t | Mtime, | ||
mode_t | Amode | ||
) | [private] |
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(), and STDIN_FILENO.
Referenced by Refresh(), and XrdSecsssKT().
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] |
References XrdSecsssKT::ktEnt::Data, XrdSecsssKT::ktEnt::ktData::Len, and XrdSecsssKT::ktEnt::ktData::Val.
Referenced by Rewrite().
ktEnt* XrdSecsssKT::keyList | ( | ) | [inline] |
References ktList.
Referenced by XrdSecsssAdmin_delKey(), XrdSecsssAdmin_insKey(), and XrdSecsssAdmin_lstKey().
void XrdSecsssKT::keyX2B | ( | ktEnt * | theKT, |
char * | xKey | ||
) | [private] |
References XrdSecsssKT::ktEnt::Data, XrdSecsssKT::ktEnt::ktData::Len, XrdSecsssKT::ktEnt::maxKLen, and XrdSecsssKT::ktEnt::ktData::Val.
Referenced by ktDecode0().
XrdSecsssKT::ktEnt * XrdSecsssKT::ktDecode0 | ( | XrdOucStream & | kTab, |
XrdOucErrInfo * | eInfo | ||
) | [private] |
References XrdSecsssKT::ktEnt::anyGRP, XrdSecsssKT::ktEnt::anyUSR, XrdSecsssKT::ktEnt::Data, XrdOucStream::GetToken(), XrdSecsssKT::ktEnt::ktData::Grup, XrdSecsssKT::ktEnt::GrupSZ, keyX2B(), XrdSecsssKT::ktEnt::maxKLen, XrdSecsssKT::ktEnt::ktData::Name, XrdSecsssKT::ktEnt::NameSZ, XrdSecsssKT::ktEnt::ktData::Opts, XrdOucErrInfo::setErrInfo(), strtoll, XrdSecsssKT::ktEnt::ktData::User, XrdSecsssKT::ktEnt::UserSZ, and XrdSecsssKT::ktEnt::usrGRP.
Referenced by getKeyTab().
void XrdSecsssKT::Refresh | ( | ) |
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] |
References ktRefT.
Referenced by XrdSecsssKTRefresh().
int XrdSecsssKT::Rewrite | ( | int | Keep, |
int & | numKeys, | ||
int & | numTot, | ||
int & | numExp | ||
) |
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(), XrdSecsssKT::ktEnt::ktData::Name, XrdSecsssKT::ktEnt::Next, XrdSecsssKT::ktEnt::NUG(), open(), rename(), rindex, S_IRGRP, S_IROTH, S_IRWXU, S_IXGRP, S_IXOTH, unlink(), XrdSecsssKT::ktEnt::ktData::User, and write().
Referenced by XrdSecsssAdmin_addKey(), XrdSecsssAdmin_delKey(), and XrdSecsssAdmin_insKey().
int XrdSecsssKT::Same | ( | const char * | path | ) | [inline] |
References ktPath.
Referenced by XrdSecProtocolsss::Init_Client().
void XrdSecsssKT::setPath | ( | const char * | Path | ) | [inline] |
References ktPath.
Referenced by XrdSecsssAdmin_insKey().
int XrdSecsssKT::kthiID [private] |
Referenced by addKey(), getKeyTab(), and XrdSecsssKT().
ktEnt* XrdSecsssKT::ktList [private] |
Referenced by addKey(), delKey(), getKey(), keyList(), Refresh(), Rewrite(), XrdSecsssKT(), and ~XrdSecsssKT().
xMode XrdSecsssKT::ktMode [private] |
Referenced by getKeyTab(), and XrdSecsssKT().
time_t XrdSecsssKT::ktMtime [private] |
Referenced by getKeyTab(), and Refresh().
char* XrdSecsssKT::ktPath [private] |
Referenced by getKeyTab(), Refresh(), Rewrite(), Same(), setPath(), XrdSecsssKT(), and ~XrdSecsssKT().
time_t XrdSecsssKT::ktRefT [private] |
Referenced by RefrTime(), and XrdSecsssKT().
XrdSysMutex XrdSecsssKT::myMutex [private] |
Referenced by getKey(), Refresh(), and ~XrdSecsssKT().
int XrdSecsssKT::randFD = -1 [static, private] |
Referenced by genKey(), and XrdSecsssKT().