822{
825 char *tokP;
826 int maxReq = 4;
827
828
829
833
834
835
836
837 if (!gpiConf.useData(parms)
839
840
841
842 if (!(tokP = gpiConf.GetLine()) || !*tokP)
843 {
eLog->
Emsg(
"PrepGPI",
"Parameters not specified.");
844 return 0;
845 }
846
847
848
849 while((tokP = gpiConf.GetToken()))
850 {Token = tokP;
851 if (Token == "-admit")
852 {if (!(tokP = gpiConf.GetToken()) || *tokP == '-')
853 {
eLog->
Emsg(
"PrepGPI",
"-admit argument not specified.");
854 return 0;
855 }
857 int argPos = 0;
858 bool argOK = false;
859 while((argPos = Args.tokenize(Token, argPos, ',')) != -1)
866 else {
eLog->
Emsg(
"PrepGPI",
"Invalid -admit request -",
868 return 0;
869 }
870 argOK = true;
871 }
872 if (!argOK)
873 {
eLog->
Emsg(
"PrepGPI",
"invalid -admit request list");
874 return 0;
875 }
876 }
877 else if (Token ==
"-cgi")
addCGI=
true;
878 else if (Token ==
"-debug")
Debug =
true;
879 else if (Token == "-maxfiles")
880 {if (!(tokP = gpiConf.GetToken()) || *tokP == '-')
881 {
eLog->
Emsg(
"PrepGPI",
"-maxfiles argument not specified.");
882 return 0;
883 }
886 }
887 else if (Token == "-maxquery")
888 {if (!(tokP = gpiConf.GetToken()) || *tokP == '-')
889 {
eLog->
Emsg(
"PrepGPI",
"-maxquery argument not specified.");
890 return 0;
891 }
894 }
895 else if (Token == "-maxreq")
896 {if (!(tokP = gpiConf.GetToken()) || *tokP == '-')
897 {
eLog->
Emsg(
"PrepGPI",
"-maxreq argument not specified.");
898 return 0;
899 }
901 &maxReq, 1, 64)) return 0;
902 }
903 else if (Token == "-maxresp")
904 {if (!(tokP = gpiConf.GetToken()) || *tokP == '-')
905 {
eLog->
Emsg(
"PrepGPI",
"-maxresp argument not specified.");
906 return 0;
907 }
908 long long rspsz;
910 &rspsz, 2048, 16777216)) return 0;
911 maxResp =
static_cast<int>(rspsz);
912 }
913 else if (Token ==
"-pfn")
usePFN =
true;
914 else if (Token == "-run")
915 {if (!(tokP = gpiConf.GetToken()) || *tokP == '-')
916 {
eLog->
Emsg(
"PrepGPI",
"-run argument not specified.");
917 return 0;
918 }
919 RunPgm = tokP;
920 }
921 else {
eLog->
Emsg(
"PrepGPI",
"Invalid option -", Token.
c_str());
922 return 0;
923 }
924 }
925
926
927
929 {
eLog->
Emsg(
"PrepGPI",
"'-admit' was not specified.");
930 return 0;
931 }
932
933
934
936 {
eLog->
Emsg(
"PrepGPI",
"prepare program not specified.");
937 return 0;
938 }
939
940
941
944
945
946
949
950
951
952
953
957 eLog->
Emsg(
"PrepGPI",
"Unable to use prepare program", RunPgm.
c_str());
958 return 0;
959 }
960
961
962
964 while(maxReq--)
968 }
969
970
971
973
974
975
977}
static XrdSysError eDest(0,"crypto_")
void * GetPtr(const char *varname)
@ only_body
Only directive bodies as a string blob.
int Setup(const char *prog, XrdSysError *errP=0, int(*Proc)(XrdOucStream *, char **, int)=0)
const char * c_str() const
static int a2i(XrdSysError &, const char *emsg, const char *item, int *val, int minv=-1, int maxv=-1)
static int a2sz(XrdSysError &, const char *emsg, const char *item, long long *val, long long minv=-1, long long maxv=-1)
int Emsg(const char *esfx, int ecode, const char *text1, const char *text2=0)
XrdSysLogger * logger(XrdSysLogger *lp=0)
void SetLogger(XrdSysLogger *logp)
XrdSysTrace SysTrace("PrepGPI")
static const int okCancel
static const size_t Max_Error_Len