diff --git a/src/XrdOuc/XrdOucTPC.cc b/src/XrdOuc/XrdOucTPC.cc index da927001cc0..92c035af462 100644 --- a/src/XrdOuc/XrdOucTPC.cc +++ b/src/XrdOuc/XrdOucTPC.cc @@ -45,6 +45,7 @@ const char *XrdOucTPC::tpcKey = "tpc.key"; const char *XrdOucTPC::tpcLfn = "tpc.lfn"; const char *XrdOucTPC::tpcOrg = "tpc.org"; const char *XrdOucTPC::tpcSrc = "tpc.src"; +const char *XrdOucTPC::tpcStr = "tpc.str"; const char *XrdOucTPC::tpcTtl = "tpc.ttl"; /******************************************************************************/ @@ -53,7 +54,7 @@ const char *XrdOucTPC::tpcTtl = "tpc.ttl"; const char *XrdOucTPC::cgiC2Dst(const char *cKey, const char *xSrc, const char *xLfn, const char *xCks, - char *Buff, int Blen) + char *Buff, int Blen, int strms) { tpcInfo Info; char *bP = Buff; @@ -80,6 +81,12 @@ const char *XrdOucTPC::cgiC2Dst(const char *cKey, const char *xSrc, if (Blen > 1) n = snprintf(bP, Blen, "&%s=%s", tpcCks, xCks); } + if (strms > 0) + {bP += n; Blen -= n; + if (Blen > 1) n = snprintf(bP, Blen, "&%s=%d", tpcStr, strms); + } + + // All done // return (n > Blen ? "!Unable to generate full cgi." : Buff); diff --git a/src/XrdOuc/XrdOucTPC.hh b/src/XrdOuc/XrdOucTPC.hh index d695a5327e9..193dcba4f01 100644 --- a/src/XrdOuc/XrdOucTPC.hh +++ b/src/XrdOuc/XrdOucTPC.hh @@ -38,7 +38,7 @@ public: static const char *cgiC2Dst(const char *cKey, const char *xSrc, const char *xLfn, - const char *xCks, char *Buff, int Blen); + const char *xCks, char *Buff, int Blen, int strms=0); static const char *cgiC2Src(const char *cKey, const char *xDst, int xTTL, @@ -61,6 +61,8 @@ const char *tpcOrg; static const char *tpcSrc; static +const char *tpcStr; +static const char *tpcTtl; XrdOucTPC() {}