00001 #ifndef __XRDOUCTPC_HH__
00002 #define __XRDOUCTPC_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 <stdlib.h>
00034
00035 class XrdOucTPC
00036 {
00037 public:
00038
00039 static
00040 const char *cgiC2Dst(const char *cKey, const char *xSrc, const char *xLfn,
00041 const char *xCks, char *Buff, int Blen, int strms=0,
00042 const char *iHst=0, const char *sprt=0, const char *tprt=0,
00043 bool dlgon=false, bool push=false);
00044
00045 static
00046 const char *cgiC2Src(const char *cKey, const char *xDst, int xTTL,
00047 char *Buff, int Blen);
00048
00049 static
00050 const char *cgiD2Src(const char *cKey, const char *cOrg,
00051 char *Buff, int Blen);
00052
00053 static int copyCGI(const char *cgi, char *Buff, int Blen);
00054
00055 static const char *tpcCks;
00056 static const char *tpcDlg;
00057 static const char *tpcDst;
00058 static const char *tpcKey;
00059 static const char *tpcLfn;
00060 static const char *tpcOrg;
00061 static const char *tpcPsh;
00062 static const char *tpcSgi;
00063 static const char *tpcSpr;
00064 static const char *tpcSrc;
00065 static const char *tpcStr;
00066 static const char *tpcTpr;
00067 static const char *tpcTtl;
00068 static const char *tpcDlgOn;
00069
00070 XrdOucTPC() {}
00071 ~XrdOucTPC() {}
00072 private:
00073
00074 struct tpcInfo
00075 {const char *uName;
00076 char *hName;
00077 const char *pName;
00078 char User[256];
00079
00080 tpcInfo() : uName(""), hName(0), pName("") {}
00081 ~tpcInfo() {if (hName) free(hName);}
00082 };
00083
00084 static bool cgiHost(tpcInfo &Info, const char *hSpec);
00085 };
00086 #endif