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);