12 #ifndef ROOT_XrdProofdAdmin
13 #define ROOT_XrdProofdAdmin
25 #include <sys/types.h>
30 #include "XrdOuc/XrdOucHash.hh"
31 #include "XrdOuc/XrdOucString.hh"
35 class XrdProtocol_Config;
37 class XrdProofdManager;
38 class XrdProofdProtocol;
39 class XrdProofdResponse;
45 XpdAdminCpCmd(
const char *cmd,
const char *fmt,
bool put) :
46 fCmd(cmd), fFmt(fmt), fCanPut(put) { }
49 class XrdProofdAdmin :
public XrdProofdConfig {
51 XrdProofdManager *fMgr;
52 std::list<XrdOucString> fExportPaths;
53 XrdOucHash<XpdAdminCpCmd> fAllowedCpCmds;
56 void RegisterDirectives();
57 int DoDirectiveExportPath(
char *, XrdOucStream *,
bool);
58 int DoDirectiveCpCmd(
char *, XrdOucStream *,
bool);
60 int CheckForbiddenChars(
const char *s);
61 int CheckPath(
bool superuser,
const char *sbdir, XrdOucString &fullpath,
62 int check,
bool &sandbox,
struct stat *st, XrdOucString &emsg);
63 int ExecCmd(XrdProofdProtocol *p, XrdProofdResponse *r,
64 int action,
const char *cmd, XrdOucString &emsg);
65 int Send(XrdProofdResponse *r,
const char *msg);
68 XrdProofdAdmin(XrdProofdManager *mgr, XrdProtocol_Config *pi, XrdSysError *e);
69 virtual ~XrdProofdAdmin() { }
71 int Config(
bool rcf = 0);
72 int DoDirective(XrdProofdDirective *d,
73 char *val, XrdOucStream *cfg,
bool rcf);
75 int Process(XrdProofdProtocol *p,
int type);
77 int QueryMssUrl(XrdProofdProtocol *p);
78 int QuerySessions(XrdProofdProtocol *p);
79 int QueryLogPaths(XrdProofdProtocol *p);
80 int CleanupSessions(XrdProofdProtocol *p);
81 int SendMsgToUser(XrdProofdProtocol *p);
82 int SetGroupProperties(XrdProofdProtocol *p);
83 int GetWorkers(XrdProofdProtocol *p);
84 int QueryWorkers(XrdProofdProtocol *p);
85 int QueryROOTVersions(XrdProofdProtocol *p);
86 int SetROOTVersion(XrdProofdProtocol *p);
87 int SetSessionAlias(XrdProofdProtocol *p);
88 int SetSessionTag(XrdProofdProtocol *p);
89 int ReleaseWorker(XrdProofdProtocol *p);
90 int Exec(XrdProofdProtocol *p);
91 int GetFile(XrdProofdProtocol *p);
92 int PutFile(XrdProofdProtocol *p);
93 int CpFile(XrdProofdProtocol *p);