XRootD
Loading...
Searching...
No Matches
XProtocol Class Reference

#include <XProtocol.hh>

Collaboration diagram for XProtocol:

Classes

struct  ServerResponseBody_Attn_asyncdi
struct  ServerResponseBody_Attn_asyncrd
struct  ServerResponseBody_Attn_asyncwt

Public Types

typedef kXR_int32 ServerResponseType
enum  XReqErrorType {
  kGENERICERR = 0 ,
  kREAD ,
  kWRITE ,
  kREDIRCONNECT ,
  kOK ,
  kNOMORESTREAMS
}

Static Public Member Functions

static const char * errName (kXR_int32 errCode)
static int mapError (int rc)
static const char * reqName (kXR_unt16 reqCode)
static int toErrno (int xerr)

Detailed Description

Definition at line 1398 of file XProtocol.hh.


Class Documentation

◆ XProtocol::ServerResponseBody_Attn_asyncdi

struct XProtocol::ServerResponseBody_Attn_asyncdi

Definition at line 1504 of file XProtocol.hh.

Collaboration diagram for XProtocol::ServerResponseBody_Attn_asyncdi:
Class Members
kXR_int32 actnum
kXR_int32 msec
kXR_int32 wsec

◆ XProtocol::ServerResponseBody_Attn_asyncrd

struct XProtocol::ServerResponseBody_Attn_asyncrd

Definition at line 1510 of file XProtocol.hh.

Collaboration diagram for XProtocol::ServerResponseBody_Attn_asyncrd:
Class Members
kXR_int32 actnum
char host[4092]
kXR_int32 port

◆ XProtocol::ServerResponseBody_Attn_asyncwt

struct XProtocol::ServerResponseBody_Attn_asyncwt

Definition at line 1516 of file XProtocol.hh.

Collaboration diagram for XProtocol::ServerResponseBody_Attn_asyncwt:
Class Members
kXR_int32 actnum
kXR_int32 wsec

Member Typedef Documentation

◆ ServerResponseType

Definition at line 1533 of file XProtocol.hh.

Member Enumeration Documentation

◆ XReqErrorType

Enumerator
kGENERICERR 
kREAD 
kWRITE 
kREDIRCONNECT 
kOK 
kNOMORESTREAMS 

Definition at line 1523 of file XProtocol.hh.

1523 {
1524 kGENERICERR = 0, // Generic error
1525 kREAD, // Error while reading from stream
1526 kWRITE, // Error while writing to stream
1527 kREDIRCONNECT, // Error redirecting to a given host
1528 kOK, // Everything seems ok
1529 kNOMORESTREAMS // No more available stream IDs for
1530 // async processing
1531};

Member Function Documentation

◆ errName()

const char * XProtocol::errName ( kXR_int32 errCode)
static

Definition at line 131 of file XProtocol.cc.

132{
133// Mangle request code if the byte orderdoesn't match our host order
134//
135 if ((errCode < 0 || errCode > kXR_ERRFENCE) && little.Endian[0])
136 errCode = ntohl(errCode);
137
138// Validate the request code
139//
140 if (errCode < kXR_ArgInvalid || errCode >= kXR_ERRFENCE
141 || !errNames[errCode - kXR_ArgInvalid])
142 return "!undefined error";
143
144// Return the proper table
145//
146 return errNames[errCode - kXR_ArgInvalid];
147}
@ kXR_ArgInvalid
@ kXR_ERRFENCE

References kXR_ArgInvalid, and kXR_ERRFENCE.

◆ mapError()

int XProtocol::mapError ( int rc)
inlinestatic

Definition at line 1404 of file XProtocol.hh.

1405 {if (rc < 0) rc = -rc;
1406 switch(rc)
1407 {case ENOENT: return kXR_NotFound;
1408 case EINVAL: return kXR_ArgInvalid;
1409 case EPERM: return kXR_NotAuthorized;
1410 case EACCES: return kXR_NotAuthorized;
1411 case EIO: return kXR_IOError;
1412 case ENOMEM: return kXR_NoMemory;
1413 case ENOBUFS: return kXR_NoMemory;
1414 case ENOSPC: return kXR_NoSpace;
1415 case ENAMETOOLONG: return kXR_ArgTooLong;
1416 case ENETUNREACH: return kXR_noserver;
1417 case EHOSTUNREACH: return kXR_noserver;
1418 case ECONNREFUSED: return kXR_noserver;
1419 case ENOTBLK: return kXR_NotFile;
1420 case ENOTSUP: return kXR_Unsupported;
1421 case EISDIR: return kXR_isDirectory;
1422 case ENOTEMPTY: [[fallthrough]];
1423 // In the case one tries to delete a non-empty directory
1424 // we have decided that until the next major release
1425 // the kXR_ItExists flag will be returned
1426 case EEXIST:
1427 return kXR_ItExists;
1428 case EBADRQC: return kXR_InvalidRequest;
1429 case ETXTBSY: return kXR_inProgress;
1430 case ENODEV: return kXR_FSError;
1431 case EFAULT: return kXR_ServerError;
1432 case EDOM: return kXR_ChkSumErr;
1433 case EDQUOT: return kXR_overQuota;
1434 case EILSEQ: return kXR_SigVerErr;
1435 case ERANGE: return kXR_DecryptErr;
1436 case EUSERS: return kXR_Overloaded;
1437 case EROFS: return kXR_fsReadOnly;
1438 case ENOATTR: return kXR_AttrNotFound;
1439 case EPROTOTYPE: return kXR_TLSRequired;
1440 case EADDRNOTAVAIL: return kXR_noReplicas;
1441 case EAUTH: return kXR_AuthFailed;
1442 case EIDRM: return kXR_Impossible;
1443 case ENOTTY: return kXR_Conflict;
1444 case ETOOMANYREFS: return kXR_TooManyErrs;
1445 case ETIMEDOUT: return kXR_ReqTimedOut;
1446 case EBADF: return kXR_FileNotOpen;
1447 case ECANCELED: return kXR_Cancelled;
1448 case ETIME: return kXR_TimerExpired;
1449 default: return kXR_FSError;
1450 }
1451 }
@ kXR_InvalidRequest
@ kXR_fsReadOnly
@ kXR_Impossible
@ kXR_TLSRequired
@ kXR_SigVerErr
@ kXR_TimerExpired
@ kXR_TooManyErrs
@ kXR_AttrNotFound
@ kXR_ItExists
@ kXR_AuthFailed
@ kXR_NotAuthorized
@ kXR_NotFound
@ kXR_ChkSumErr
@ kXR_DecryptErr
@ kXR_overQuota
@ kXR_NoSpace
@ kXR_FileNotOpen
@ kXR_isDirectory
@ kXR_noReplicas
@ kXR_inProgress
@ kXR_NotFile
@ kXR_Unsupported
@ kXR_Cancelled
@ kXR_Conflict
@ kXR_ServerError
@ kXR_Overloaded
@ kXR_ArgTooLong
@ kXR_noserver
@ kXR_ReqTimedOut
@ kXR_IOError
@ kXR_FSError
@ kXR_NoMemory
#define EAUTH
#define ENOATTR
#define EBADRQC

References EAUTH, EBADRQC, ENOATTR, ETIME, kXR_ArgInvalid, kXR_ArgTooLong, kXR_AttrNotFound, kXR_AuthFailed, kXR_Cancelled, kXR_ChkSumErr, kXR_Conflict, kXR_DecryptErr, kXR_FileNotOpen, kXR_FSError, kXR_fsReadOnly, kXR_Impossible, kXR_inProgress, kXR_InvalidRequest, kXR_IOError, kXR_isDirectory, kXR_ItExists, kXR_NoMemory, kXR_noReplicas, kXR_noserver, kXR_NoSpace, kXR_NotAuthorized, kXR_NotFile, kXR_NotFound, kXR_Overloaded, kXR_overQuota, kXR_ReqTimedOut, kXR_ServerError, kXR_SigVerErr, kXR_TimerExpired, kXR_TLSRequired, kXR_TooManyErrs, and kXR_Unsupported.

Referenced by XrdCl::LocalFileHandler::ListXAttr(), main(), XrdSsiUtils::MapErr(), XrdXrootdAioTask::SendError(), XrdXrootdCallBack::sendError(), XrdXrootdAioTask::SendFSError(), XrdCl::LocalFileHandler::Sync(), XrdCl::FileStateHandler::Write(), and XrdCl::FileStateHandler::Write().

Here is the caller graph for this function:

◆ reqName()

const char * XProtocol::reqName ( kXR_unt16 reqCode)
static

Definition at line 153 of file XProtocol.cc.

154{
155// Mangle request code if the byte orderdoesn't match our host order
156//
157 if (reqCode > kXR_REQFENCE && little.Endian[0]) reqCode = ntohs(reqCode);
158
159// Validate the request code
160//
161 if (reqCode < kXR_auth || reqCode >= kXR_REQFENCE
162 || !reqNames[reqCode - kXR_auth])
163 return "!unknown";
164
165// Return the proper table
166//
167 return reqNames[reqCode - kXR_auth];
168}
@ kXR_REQFENCE
Definition XProtocol.hh:146
@ kXR_auth
Definition XProtocol.hh:113

References kXR_auth, and kXR_REQFENCE.

Referenced by XrdXrootdProtocol::Process(), and XrdXrootdProtocol::Process2().

Here is the caller graph for this function:

◆ toErrno()

int XProtocol::toErrno ( int xerr)
inlinestatic

Definition at line 1453 of file XProtocol.hh.

1454{
1455 switch(xerr)
1456 {case kXR_ArgInvalid: return EINVAL;
1457 case kXR_ArgMissing: return EINVAL;
1458 case kXR_ArgTooLong: return ENAMETOOLONG;
1459 case kXR_FileLocked: return EDEADLK;
1460 case kXR_FileNotOpen: return EBADF;
1461 case kXR_FSError: return ENODEV;
1462 case kXR_InvalidRequest:return EBADRQC;
1463 case kXR_IOError: return EIO;
1464 case kXR_NoMemory: return ENOMEM;
1465 case kXR_NoSpace: return ENOSPC;
1466 case kXR_NotAuthorized: return EACCES;
1467 case kXR_NotFound: return ENOENT;
1468 case kXR_ServerError: return EFAULT;
1469 case kXR_Unsupported: return ENOTSUP;
1470 case kXR_noserver: return EHOSTUNREACH;
1471 case kXR_NotFile: return ENOTBLK;
1472 case kXR_isDirectory: return EISDIR;
1473 case kXR_Cancelled: return ECANCELED;
1474 case kXR_ItExists: return EEXIST;
1475 case kXR_ChkSumErr: return EDOM;
1476 case kXR_inProgress: return EINPROGRESS;
1477 case kXR_overQuota: return EDQUOT;
1478 case kXR_SigVerErr: return EILSEQ;
1479 case kXR_DecryptErr: return ERANGE;
1480 case kXR_Overloaded: return EUSERS;
1481 case kXR_fsReadOnly: return EROFS;
1482 case kXR_BadPayload: return EINVAL;
1483 case kXR_AttrNotFound: return ENOATTR;
1484 case kXR_TLSRequired: return EPROTOTYPE;
1485 case kXR_noReplicas: return EADDRNOTAVAIL;
1486 case kXR_AuthFailed: return EAUTH;
1487 case kXR_Impossible: return EIDRM;
1488 case kXR_Conflict: return ENOTTY;
1489 case kXR_TooManyErrs: return ETOOMANYREFS;
1490 case kXR_ReqTimedOut: return ETIMEDOUT;
1491 case kXR_TimerExpired: return ETIME; // Used for 504 Gateway timeout in proxy
1492 default: return ENOMSG;
1493 }
1494}
@ kXR_ArgMissing
@ kXR_FileLocked
@ kXR_BadPayload
void xerr(int x)

References EAUTH, EBADRQC, ENOATTR, ETIME, kXR_ArgInvalid, kXR_ArgMissing, kXR_ArgTooLong, kXR_AttrNotFound, kXR_AuthFailed, kXR_BadPayload, kXR_Cancelled, kXR_ChkSumErr, kXR_Conflict, kXR_DecryptErr, kXR_FileLocked, kXR_FileNotOpen, kXR_FSError, kXR_fsReadOnly, kXR_Impossible, kXR_inProgress, kXR_InvalidRequest, kXR_IOError, kXR_isDirectory, kXR_ItExists, kXR_NoMemory, kXR_noReplicas, kXR_noserver, kXR_NoSpace, kXR_NotAuthorized, kXR_NotFile, kXR_NotFound, kXR_Overloaded, kXR_overQuota, kXR_ReqTimedOut, kXR_ServerError, kXR_SigVerErr, kXR_TimerExpired, kXR_TLSRequired, kXR_TooManyErrs, kXR_Unsupported, and xerr().

Referenced by mapXrdErrToHttp(), XrdPosixMap::Result(), and XrdCl::Status::ToString().

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files: