00001 #ifndef __XRDOUCUTILS_HH__
00002 #define __XRDOUCUTILS_HH__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #include <sys/types.h>
00034 #include <sys/stat.h>
00035
00036 class XrdSysError;
00037 class XrdOucStream;
00038
00039 class XrdOucUtils
00040 {
00041 public:
00042
00043 static const mode_t pathMode = S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH;
00044
00045 static char *eText(int rc, char *eBuff, int eBlen, int AsIs=0);
00046
00047 static int doIf(XrdSysError *eDest, XrdOucStream &Config,
00048 const char *what, const char *hname,
00049 const char *nname, const char *pname);
00050
00051 static int fmtBytes(long long val, char *buff, int bsz);
00052
00053 static char *genPath(const char *path, const char *inst, const char *psfx=0);
00054
00055 static int genPath(char *buff, int blen, const char *path, const char *psfx=0);
00056
00057 static int GroupName(gid_t gID, char *gName, int gNsz);
00058
00059 static char *Ident(long long &mySID, char *iBuff, int iBlen,
00060 const char *iHost, const char *iProg, const char *iName,
00061 int Port);
00062
00063 static const char *InstName(int TranOpt=0);
00064
00065 static const char *InstName(const char *name, int Fillit=1);
00066
00067 static int is1of(char *val, const char **clist);
00068
00069 static void makeHome(XrdSysError &eDest, const char *inst);
00070
00071 static int makePath(char *path, mode_t mode);
00072
00073 static char *subLogfn(XrdSysError &eDest, const char *inst, char *logfn);
00074
00075 static void Undercover(XrdSysError &eDest, int noLog, int *pipeFD = 0);
00076
00077 static int UserName(uid_t uID, char *uName, int uNsz);
00078
00079 static bool PidFile(XrdSysError &eDest, const char *path);
00080
00081 XrdOucUtils() {}
00082 ~XrdOucUtils() {}
00083 };
00084 #endif