12 #ifndef ROOT_XrdProofdClientMgr
13 #define ROOT_XrdProofdClientMgr
31 #include "XrdOuc/XrdOucString.hh"
33 #define XPD_LOGGEDIN 1
34 #define XPD_NEED_AUTH 2
35 #define XPD_ADMINUSER 4
36 #define XPD_NEED_MAP 8
38 class XrdProofdClient;
39 class XrdProofdConfig;
40 class XrdProofdManager;
41 class XrdProofdProtocol;
42 class XrdProtocol_Config;
48 class XrdProofdClientMgr :
public XrdProofdConfig {
50 XrdSysRecMutex *fMutex;
51 XrdProofdManager *fMgr;
54 XrdSysPlugin *fSecPlugin;
59 XrdOucString fClntAdminPath;
61 int fReconnectTimeOut;
64 std::list<XrdProofdClient *> fProofdClients;
66 int CheckAdminPath(XrdProofdProtocol *p,
67 XrdOucString &cidpath, XrdOucString &emsg);
68 int CheckClient(XrdProofdProtocol *p,
69 const char *user, XrdOucString &emsg);
70 int CreateAdminPath(XrdProofdProtocol *p,
71 XrdOucString &path, XrdOucString &e);
72 int RestoreAdminPath(XrdOucString &cpath, XrdOucString &emsg);
73 int ParsePreviousClients(XrdOucString &emsg);
74 int MapClient(XrdProofdProtocol *xp,
bool all = 1);
75 char *FilterSecConfig(
int &nd);
77 void RegisterDirectives();
78 int DoDirectiveClientMgr(
char *, XrdOucStream *,
bool);
81 XrdSecService *LoadSecurity();
84 XrdProofdClientMgr(XrdProofdManager *mgr, XrdProtocol_Config *pi, XrdSysError *e);
85 virtual ~XrdProofdClientMgr() { SafeDel(fMutex); }
87 enum CMProtocol { kClientDisconnect = 0 };
89 int Config(
bool rcf = 0);
90 int DoDirective(XrdProofdDirective *d,
91 char *val, XrdOucStream *cfg,
bool rcf);
94 XrdProofdClient *GetClient(
const char *usr,
const char *grp = 0,
bool create = 1);
95 int GetNClients()
const { XrdSysMutexHelper mh(fMutex);
96 return fProofdClients.size(); }
98 void Broadcast(XrdProofdClient *c,
const char *msg);
99 void TerminateSessions(XrdProofdClient *c,
const char *msg,
int srvtype);
101 int Process(XrdProofdProtocol *p);
103 int Auth(XrdProofdProtocol *xp);
104 int Login(XrdProofdProtocol *xp);
106 int CheckFrequency()
const {
return fCheckFrequency; }
107 inline XrdProofdPipe *Pipe() {
return &fPipe; }