54#include <netinet/in.h>
73 "Argument is too long",
74 "File or object is locked",
75 "File or object not open",
79 "Insufficient memory",
81 "Request not authorized",
82 "File or object not found",
83 "Internal server error",
84 "Unsupported request",
85 "No servers available",
86 "Target is not a file",
87 "Target is a directory",
90 "Checksum is invalid",
91 "Request in progress",
95 "Server is overloaded",
96 "Filesystem is read only",
97 "Invalid payload format",
98 "File attribute not found",
99 "Operation requires TLS",
100 "No new servers for replica",
101 "Authentication failed",
102 "Request is not possible",
103 "Conflicting request",
110 {
"auth",
"query",
"chmod",
"close",
111 "dirlist",
"gpfile",
"protocol",
"login",
112 "mkdir",
"mv",
"open",
"ping",
113 "chkpoint",
"read",
"rm",
"rmdir",
114 "sync",
"stat",
"set",
"write",
115 "fattr",
"prepare",
"statx",
"endsess",
116 "bind",
"readv",
"pgwrite",
"locate",
117 "truncate",
"sigver",
"pgread",
"writev",
124union Endianness {
kXR_unt16 xyz;
unsigned char Endian[2];} little = {1};
135 if ((errCode < 0 || errCode >
kXR_ERRFENCE) && little.Endian[0])
136 errCode = ntohl(errCode);
142 return "!undefined error";
157 if (reqCode >
kXR_REQFENCE && little.Endian[0]) reqCode = ntohs(reqCode);
167 return reqNames[reqCode -
kXR_auth];
179 memset( buffer, 0,
sizeof(
kXR_unt16 ) );
182 size_t len = strlen( name );
183 memcpy( buffer, name, len + 1 );
197 memcpy( buffer, &lendat,
sizeof(
kXR_int32 ) );
200 memcpy( buffer, value, len );
221 name = strdup( buffer );
222 buffer += strlen( name ) + 1;
240 value =
reinterpret_cast<char*
>( malloc( len + 1 ) );
241 strncpy( value, buffer, len );
static const char * reqName(kXR_unt16 reqCode)
static const char * errName(kXR_int32 errCode)
static char * VVecInsert(const char *value, char *buffer)
static char * NVecRead(char *buffer, kXR_unt16 &rc)
static char * VVecRead(char *buffer, kXR_int32 &len)
static char * NVecInsert(const char *name, char *buffer)