Print

Print


@ccaffy - the two places where the perf markers are sent are:
- https://github.com/xrootd/xrootd/blob/master/src/XrdTpc/XrdTpcTPC.cc#L599
- https://github.com/xrootd/xrootd/blob/master/src/XrdTpc/XrdTpcMultistream.cc#L325

Now, the thing needing testing here is that we ask libcurl for the current socket's IP address in order to get the list of addresses (which then @mpatrascoiu uses to determine IPv4-vs-IPv6).  I do not know if, at the beginning or the end of the transfer, libcurl knows the primary data transfer socket yet.  I suspect you might have some luck at the end of the transfer.

If libcurl doesn't persist this information, then you might have to query it in the write/read callback and cache it (which would be quite ugly in my opinion).  That would correctly label in the cases of a transfer of >1 bytes.

Another, perhaps cleaner option, would be to utilize the open socket callback already used for the gstream monitoring (implemented by @abh3):

https://github.com/xrootd/xrootd/blame/master/src/XrdTpc/XrdTpcTPC.cc#L599

Given the callback is invoked for each HTTP server (including redirectors), you may end up with a sequence of servers and only the last is the one where you possibly transfer data.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/xrootd/xrootd/issues/1785#issuecomment-1256209272
You are receiving this because you are subscribed to this thread.

Message ID: <[log in to unmask]>

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1