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 1352 of file XProtocol.hh.


Class Documentation

◆ XProtocol::ServerResponseBody_Attn_asyncdi

struct XProtocol::ServerResponseBody_Attn_asyncdi

Definition at line 1456 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 1462 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 1468 of file XProtocol.hh.

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

Member Typedef Documentation

◆ ServerResponseType

Member Enumeration Documentation

◆ XReqErrorType

Enumerator
kGENERICERR 
kREAD 
kWRITE 
kREDIRCONNECT 
kOK 
kNOMORESTREAMS 

Definition at line 1475 of file XProtocol.hh.

1475 {
1476 kGENERICERR = 0, // Generic error
1477 kREAD, // Error while reading from stream
1478 kWRITE, // Error while writing to stream
1479 kREDIRCONNECT, // Error redirecting to a given host
1480 kOK, // Everything seems ok
1481 kNOMORESTREAMS // No more available stream IDs for
1482 // async processing
1483};

Member Function Documentation

◆ errName()

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

Definition at line 130 of file XProtocol.cc.

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

References kXR_ArgInvalid, and kXR_ERRFENCE.

◆ mapError()

static int XProtocol::mapError ( int rc)
inlinestatic

Definition at line 1358 of file XProtocol.hh.

1359 {if (rc < 0) rc = -rc;
1360 switch(rc)
1361 {case ENOENT: return kXR_NotFound;
1362 case EINVAL: return kXR_ArgInvalid;
1363 case EPERM: return kXR_NotAuthorized;
1364 case EACCES: return kXR_NotAuthorized;
1365 case EIO: return kXR_IOError;
1366 case ENOMEM: return kXR_NoMemory;
1367 case ENOBUFS: return kXR_NoMemory;
1368 case ENOSPC: return kXR_NoSpace;
1369 case ENAMETOOLONG: return kXR_ArgTooLong;
1370 case ENETUNREACH: return kXR_noserver;
1371 case ENOTBLK: return kXR_NotFile;
1372 case ENOTSUP: return kXR_Unsupported;
1373 case EISDIR: return kXR_isDirectory;
1374 case ENOTEMPTY: [[fallthrough]];
1375 // In the case one tries to delete a non-empty directory
1376 // we have decided that until the next major release
1377 // the kXR_ItExists flag will be returned
1378 case EEXIST:
1379 return kXR_ItExists;
1380 case EBADRQC: return kXR_InvalidRequest;
1381 case ETXTBSY: return kXR_inProgress;
1382 case ENODEV: return kXR_FSError;
1383 case EFAULT: return kXR_ServerError;
1384 case EDOM: return kXR_ChkSumErr;
1385 case EDQUOT: return kXR_overQuota;
1386 case EILSEQ: return kXR_SigVerErr;
1387 case ERANGE: return kXR_DecryptErr;
1388 case EUSERS: return kXR_Overloaded;
1389 case EROFS: return kXR_fsReadOnly;
1390 case ENOATTR: return kXR_AttrNotFound;
1391 case EPROTOTYPE: return kXR_TLSRequired;
1392 case EADDRNOTAVAIL: return kXR_noReplicas;
1393 case EAUTH: return kXR_AuthFailed;
1394 case EIDRM: return kXR_Impossible;
1395 case ENOTTY: return kXR_Conflict;
1396 case ETOOMANYREFS: return kXR_TooManyErrs;
1397 case ETIMEDOUT: return kXR_ReqTimedOut;
1398 case EBADF: return kXR_FileNotOpen;
1399 case ECANCELED: return kXR_Cancelled;
1400 case ETIME: return kXR_TimerExpired;
1401 default: return kXR_FSError;
1402 }
1403 }
@ kXR_InvalidRequest
Definition XProtocol.hh:994
@ kXR_fsReadOnly
@ kXR_Impossible
@ kXR_TLSRequired
@ kXR_SigVerErr
@ kXR_TimerExpired
@ kXR_TooManyErrs
@ kXR_AttrNotFound
@ kXR_ItExists
@ kXR_AuthFailed
@ kXR_NotAuthorized
Definition XProtocol.hh:998
@ kXR_NotFound
Definition XProtocol.hh:999
@ kXR_ChkSumErr
@ kXR_DecryptErr
@ kXR_overQuota
@ kXR_NoSpace
Definition XProtocol.hh:997
@ kXR_FileNotOpen
Definition XProtocol.hh:992
@ kXR_isDirectory
@ kXR_noReplicas
@ kXR_inProgress
@ kXR_NotFile
@ kXR_Unsupported
@ kXR_Cancelled
@ kXR_Conflict
@ kXR_ServerError
@ kXR_Overloaded
@ kXR_ArgTooLong
Definition XProtocol.hh:990
@ kXR_noserver
@ kXR_ReqTimedOut
@ kXR_IOError
Definition XProtocol.hh:995
@ kXR_FSError
Definition XProtocol.hh:993
@ kXR_NoMemory
Definition XProtocol.hh:996
#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 151 of file XProtocol.cc.

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

References kXR_auth, and kXR_REQFENCE.

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

+ Here is the caller graph for this function:

◆ toErrno()

static int XProtocol::toErrno ( int xerr)
inlinestatic

Definition at line 1405 of file XProtocol.hh.

1406{
1407 switch(xerr)
1408 {case kXR_ArgInvalid: return EINVAL;
1409 case kXR_ArgMissing: return EINVAL;
1410 case kXR_ArgTooLong: return ENAMETOOLONG;
1411 case kXR_FileLocked: return EDEADLK;
1412 case kXR_FileNotOpen: return EBADF;
1413 case kXR_FSError: return ENODEV;
1414 case kXR_InvalidRequest:return EBADRQC;
1415 case kXR_IOError: return EIO;
1416 case kXR_NoMemory: return ENOMEM;
1417 case kXR_NoSpace: return ENOSPC;
1418 case kXR_NotAuthorized: return EACCES;
1419 case kXR_NotFound: return ENOENT;
1420 case kXR_ServerError: return EFAULT;
1421 case kXR_Unsupported: return ENOTSUP;
1422 case kXR_noserver: return EHOSTUNREACH;
1423 case kXR_NotFile: return ENOTBLK;
1424 case kXR_isDirectory: return EISDIR;
1425 case kXR_Cancelled: return ECANCELED;
1426 case kXR_ItExists: return EEXIST;
1427 case kXR_ChkSumErr: return EDOM;
1428 case kXR_inProgress: return EINPROGRESS;
1429 case kXR_overQuota: return EDQUOT;
1430 case kXR_SigVerErr: return EILSEQ;
1431 case kXR_DecryptErr: return ERANGE;
1432 case kXR_Overloaded: return EUSERS;
1433 case kXR_fsReadOnly: return EROFS;
1434 case kXR_BadPayload: return EINVAL;
1435 case kXR_AttrNotFound: return ENOATTR;
1436 case kXR_TLSRequired: return EPROTOTYPE;
1437 case kXR_noReplicas: return EADDRNOTAVAIL;
1438 case kXR_AuthFailed: return EAUTH;
1439 case kXR_Impossible: return EIDRM;
1440 case kXR_Conflict: return ENOTTY;
1441 case kXR_TooManyErrs: return ETOOMANYREFS;
1442 case kXR_ReqTimedOut: return ETIMEDOUT;
1443 case kXR_TimerExpired: return ETIME; // Used for 504 Gateway timeout in proxy
1444 default: return ENOMSG;
1445 }
1446}
@ kXR_ArgMissing
Definition XProtocol.hh:989
@ kXR_FileLocked
Definition XProtocol.hh:991
@ 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 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: