Logo ROOT   6.08/07
Reference Guide
XrdProofdAdmin.h
Go to the documentation of this file.
1 // @(#)root/proofd:$Id$
2 // Author: G. Ganis Feb 2008
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_XrdProofdAdmin
13 #define ROOT_XrdProofdAdmin
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // XrdProofdAdmin //
18 // //
19 // Author: G. Ganis, CERN, 2008 //
20 // //
21 // Envelop class for admin services. //
22 // Loaded as service by XrdProofdManager. //
23 // //
24 //////////////////////////////////////////////////////////////////////////
25 #include <sys/types.h>
26 #include <sys/stat.h>
27 #include <unistd.h>
28 
29 #include <list>
30 #include "XrdOuc/XrdOucHash.hh"
31 #include "XrdOuc/XrdOucString.hh"
32 
33 #include "XrdProofdConfig.h"
34 
35 class XrdProtocol_Config;
36 class XrdSysError;
37 class XrdProofdManager;
38 class XrdProofdProtocol;
39 class XrdProofdResponse;
41 public:
42  XrdOucString fCmd;
43  XrdOucString fFmt;
44  bool fCanPut;
45  XpdAdminCpCmd(const char *cmd, const char *fmt, bool put) :
46  fCmd(cmd), fFmt(fmt), fCanPut(put) { }
47 };
48 
50 
52  std::list<XrdOucString> fExportPaths;
53  XrdOucHash<XpdAdminCpCmd> fAllowedCpCmds; // List of copy commands
54  XrdOucString fCpCmds; // String with the allowed copy commands
55 
56  void RegisterDirectives();
57  int DoDirectiveExportPath(char *, XrdOucStream *, bool);
58  int DoDirectiveCpCmd(char *, XrdOucStream *, bool);
59 
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);
66 
67 public:
68  XrdProofdAdmin(XrdProofdManager *mgr, XrdProtocol_Config *pi, XrdSysError *e);
69  virtual ~XrdProofdAdmin() { }
70 
71  int Config(bool rcf = 0);
72  int DoDirective(XrdProofdDirective *d,
73  char *val, XrdOucStream *cfg, bool rcf);
74 
75  int Process(XrdProofdProtocol *p, int type);
76 
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);
94 };
95 
96 #endif
XpdAdminCpCmd(const char *cmd, const char *fmt, bool put)
XrdOucString fFmt
XrdOucString fCpCmds
const double pi
virtual ~XrdProofdAdmin()
std::list< XrdOucString > fExportPaths
TRandom2 r(17)
#define XrdSysError
Definition: XpdSysError.h:8
XrdOucHash< XpdAdminCpCmd > fAllowedCpCmds
int type
Definition: TGX11.cxx:120
XrdProofdManager * fMgr
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
Definition: TRolke.cxx:630
XrdOucString fCmd