50 virtual int Init(
const char *cfgfile) {
return 0;}
57 struct curl_sockaddr *address);
66 gettimeofday(&
begT, 0);
99 const std::string &authz);
103 bool &success,
TPCLogRecord &,
bool shouldReturnErrorToClient =
true);
113 off_t bytes_transferred);
123 size_t streams, std::vector<TPC::State*> &streams_handles,
124 std::vector<ManagedCurlHandle> &curl_handles,
135 std::string &path2,
bool &path2_alt);
141 const std::string &event,
const std::string &message=
"");
Utility functions for XrdHTTP.
void CURL
Definition: XrdTpcState.hh:14
void CURL
Definition: XrdTpcTPC.hh:22
Definition: PMarkManager.hh:46
Definition: XrdTpcState.hh:20
Definition: XrdTpcTPC.hh:42
int ProcessOptionsReq(XrdHttpExtReq &req)
std::string m_cadir
Definition: XrdTpcTPC.hh:150
static int closesocket_callback(void *clientp, curl_socket_t fd)
TPCHandler(XrdSysError *log, const char *config, XrdOucEnv *myEnv)
bool ConfigureLogger(XrdOucStream &Config)
void logTransferEvent(LogMask lvl, const TPCLogRecord &record, const std::string &event, const std::string &message="")
static XrdSysMutex m_monid_mutex
Definition: XrdTpcTPC.hh:152
bool usingEC
Definition: XrdTpcTPC.hh:167
static size_t m_small_block_size
Definition: XrdTpcTPC.hh:145
std::string m_cafile
Definition: XrdTpcTPC.hh:151
void ConfigureCurlCA(CURL *curl)
int m_timeout
Definition: XrdTpcTPC.hh:147
int ProcessPullReq(const std::string &resource, XrdHttpExtReq &req)
virtual int ProcessReq(XrdHttpExtReq &req)
static uint64_t m_monid
Definition: XrdTpcTPC.hh:153
static const int m_pipelining_multiplier
Definition: XrdTpcTPC.hh:164
bool m_desthttps
Definition: XrdTpcTPC.hh:146
static std::string GetAuthz(XrdHttpExtReq &req)
static int m_marker_period
Definition: XrdTpcTPC.hh:143
static int sockopt_setcloexec_callback(void *clientp, curl_socket_t curlfd, curlsocktype purpose)
int OpenWaitStall(XrdSfsFile &fh, const std::string &resource, int mode, int openMode, const XrdSecEntity &sec, const std::string &authz)
int RedirectTransfer(CURL *curl, const std::string &redirect_resource, XrdHttpExtReq &req, XrdOucErrInfo &error, TPCLogRecord &)
virtual bool MatchesPath(const char *verb, const char *path)
Tells if the incoming path is recognized as one of the paths that have to be processed.
virtual int Init(const char *cfgfile)
Initializes the external request handler.
Definition: XrdTpcTPC.hh:50
int ProcessPushReq(const std::string &resource, XrdHttpExtReq &req)
XrdSysError m_log
Definition: XrdTpcTPC.hh:154
static size_t m_block_size
Definition: XrdTpcTPC.hh:144
int RunCurlBasic(CURL *curl, XrdHttpExtReq &req, TPC::State &state, TPCLogRecord &rec)
bool ConfigureFSLib(XrdOucStream &Config, std::string &path1, bool &path1_alt, std::string &path2, bool &path2_alt)
XrdSfsFileSystem * m_sfs
Definition: XrdTpcTPC.hh:155
std::shared_ptr< XrdTlsTempCA > m_ca_file
Definition: XrdTpcTPC.hh:156
bool Configure(const char *configfn, XrdOucEnv *myEnv)
static int opensocket_callback(void *clientp, curlsocktype purpose, struct curl_sockaddr *address)
int m_first_timeout
Definition: XrdTpcTPC.hh:148
Definition: XrdHttpExtHandler.hh:88
Definition: XrdHttpExtHandler.hh:47
Definition: XrdNetPMark.hh:37
Definition: XrdOucEnv.hh:42
Definition: XrdOucErrInfo.hh:101
Definition: XrdOucStream.hh:47
Definition: XrdSecEntity.hh:65
Definition: XrdSfsInterface.hh:845
Definition: XrdSfsInterface.hh:369
Definition: XrdSysError.hh:90
Definition: XrdSysPthread.hh:165
Definition: XrdXrootdTpcMon.hh:41
Definition: XrdTpcState.hh:17
std::unique_ptr< CURL, CurlDeleter > ManagedCurlHandle
Definition: XrdTpcTPC.hh:39
LogMask
Definition: XrdTpcTPC.hh:27
@ All
Definition: XrdTpcTPC.hh:32
@ Info
Definition: XrdTpcTPC.hh:29
@ Error
Definition: XrdTpcTPC.hh:31
@ Debug
Definition: XrdTpcTPC.hh:28
@ Warning
Definition: XrdTpcTPC.hh:30
Definition: XrdTpcTPC.hh:36
void operator()(CURL *curl)
Definition: XrdTpcTPC.hh:61
timeval begT
Definition: XrdTpcTPC.hh:76
int tpc_status
Definition: XrdTpcTPC.hh:79
std::string remote
Definition: XrdTpcTPC.hh:72
PMarkManager pmarkManager
Definition: XrdTpcTPC.hh:82
int status
Definition: XrdTpcTPC.hh:78
off_t bytes_transferred
Definition: XrdTpcTPC.hh:77
std::string name
Definition: XrdTpcTPC.hh:73
bool isIPv6
Definition: XrdTpcTPC.hh:81
std::string clID
Definition: XrdTpcTPC.hh:74
std::string local
Definition: XrdTpcTPC.hh:71
static XrdXrootdTpcMon * tpcMonitor
Definition: XrdTpcTPC.hh:75
TPCLogRecord(XrdNetPMark *pmark)
Definition: XrdTpcTPC.hh:63
std::string log_prefix
Definition: XrdTpcTPC.hh:70
unsigned int streams
Definition: XrdTpcTPC.hh:80