Print

Print


When using an `XrdOfs` plugin, the file open call will be handed to the plugin Open function.
In case validation fails, the plugin should return a status code (e.g: `SFS_ERROR`), with more details in the `XrdOucErrInfo` error object.

For the following code (XrdXRootdXeq.cc::1393):
```cpp
// Open the file
//
   if ((rc = fp->open(fn, (XrdSfsFileOpenMode)openopts,
                     (mode_t)mode, CRED, opaque)))
      {rc = fsError(rc, opC, fp->error, fn, opaque); return rc;}
```

Providing a status != 0 will trigger parsing of the error object.
The errno from the error object is translated in the XProtocol::mapError() function. 
However, for EINVAL, it defaults to kXR_FSError, which is a retryable error.

The complementary `XProtocol::toErrno()` function provides a mapping between `kXR_ArgInvalid`/`kXR_ArgMissing` to `EINVAL`.

There's no benefit in retrying an `EINVAL` error from the `open` call.
Would be useful to have a mapping between `EINVAL` to a _kXR__ error code.

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

########################################################################
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