You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The documentation does not specify if the binary resp buffer returned by a normal response should contain a pure binary response or if it should always be a null terminated C-string.
The GFAL project and indirectly the FTS project have been effected by this ambiguity. When GFAL sends an kXR_prepare request to an EOSCTA storage end point it receives back a binary buffer of 45 bytes which consists of 44 printable characters followed by a null terminator. In other words EOSCTA returns a null terminated string. However when GFAL sends an kXR_prepare request to the dtn20.nese.rc.fas.harvard.edu:1094 storage end point it receives back a binary buffer of 36 bytes that contains 36 printable characters and NOnull terminator.
If the response should always be a null terminated string then the GFAL project's code should be modified to fail the kXR_prepare request sent to dtn20.nese.rc.fas.harvard.edu:1094 due to an invalid response. Before this modification can be made we need the XRootD experts to answer the following question:
Should the response to a kXR_prepare request ALWAYS be a null terminated string?
The text was updated successfully, but these errors were encountered:
Thanks for bringing this up. This is not the only place we have this ambiguity. Our general take is if we do not explicitly say x then you cannot assume x. Here, we normally say "One should neither assume the response is printable nor that it is null terminate; as the response is implementation dependent."
Many thanks for the clarification. A test version of the XRootD client plugin for GFAL2 has been created that does not assume the value is null terminated.
Dear XRootD experts,
The following web page documents the
kXR_prepare
request:The documentation does not specify if the binary
resp
buffer returned by a normal response should contain a pure binary response or if it should always be anull
terminated C-string.The GFAL project and indirectly the FTS project have been effected by this ambiguity. When GFAL sends an
kXR_prepare
request to an EOSCTA storage end point it receives back a binary buffer of 45 bytes which consists of 44 printable characters followed by anull
terminator. In other words EOSCTA returns anull
terminated string. However when GFAL sends ankXR_prepare
request to thedtn20.nese.rc.fas.harvard.edu:1094
storage end point it receives back a binary buffer of 36 bytes that contains 36 printable characters and NOnull
terminator.If the response should always be a
null
terminated string then the GFAL project's code should be modified to fail thekXR_prepare
request sent todtn20.nese.rc.fas.harvard.edu:1094
due to an invalid response. Before this modification can be made we need the XRootD experts to answer the following question:kXR_prepare
request ALWAYS be anull
terminated string?The text was updated successfully, but these errors were encountered: