xrootd
XProtocol.hh
Go to the documentation of this file.
1#ifndef __XPROTOCOL_H
2#define __XPROTOCOL_H
3/******************************************************************************/
4/* */
5/* X P r o t o c o l . h h */
6/* */
7/* (c) 2012 by the Board of Trustees of the Leland Stanford, Jr., University */
8/* All Rights Reserved */
9/* Produced by Andrew Hanushevsky for Stanford University under contract */
10/* DE-AC02-76-SFO0515 with the Department of Energy */
11/* */
12/* This file is part of the XRootD software suite. */
13/* */
14/* XRootD is free software: you can redistribute it and/or modify it under */
15/* the terms of the GNU Lesser General Public License as published by the */
16/* Free Software Foundation, either version 3 of the License, or (at your */
17/* option) any later version. */
18/* */
19/* The XRootD protocol definition, documented in this file, is distributed */
20/* under a modified BSD license and may be freely used to reimplement it. */
21/* Any references to "source" in this license refers to this file or any */
22/* other file that specifically contains the following license. */
23/* */
24/* Redistribution and use in source and binary forms, with or without */
25/* modification, are permitted provided that the following conditions */
26/* are met: */
27/* */
28/* 1. Redistributions of source code must retain the above copyright notice, */
29/* this list of conditions and the following disclaimer. */
30/* */
31/* 2. Redistributions in binary form must reproduce the above copyright */
32/* notice, this list of conditions and the following disclaimer in the */
33/* documentation and/or other materials provided with the distribution. */
34/* */
35/* 3. Neither the name of the copyright holder nor the names of its */
36/* contributors may be used to endorse or promote products derived from */
37/* this software without specific prior written permission. */
38/* */
39/* 4. Derived software may not use the name XRootD or cmsd (regardless of */
40/* capitilization) in association with the derived work if the protocol */
41/* documented in this file is changed in any way. */
42/* */
43/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
44/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
45/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR */
46/* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */
47/* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
48/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
49/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, */
50/* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY */
51/* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */
52/* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE */
53/******************************************************************************/
54
55//#ifndef __GNUC__
56//#define __attribute__(x)
57//#ifdef SUNCC
58//#pragma pack(4)
59//#endif
60//#endif
61
62#ifdef __CINT__
63#define __attribute__(x)
64#endif
65
66// The following is the binary representation of the protocol version here.
67// Protocol version is repesented as three base10 digits x.y.z with x having no
68// upper limit (i.e. n.9.9 + 1 -> n+1.0.0). The kXR_PROTSIGNVERSION defines the
69// protocol version where request signing became available.
70//
71#define kXR_PROTOCOLVERSION 0x00000400
72#define kXR_PROTSIGNVERSION 0x00000310
73#define kXR_PROTOCOLVSTRING "4.0.0"
74
75#include "XProtocol/XPtypes.hh"
76
77// KINDS of SERVERS
78//
79//
80#define kXR_DataServer 1
81#define kXR_LBalServer 0
82
83// The below are defined for protocol version 2.9.7 or higher
84// These are the flag value in the kXR_protool response
85//
86#define kXR_isManager 0x00000002
87#define kXR_isServer 0x00000001
88#define kXR_attrMeta 0x00000100
89#define kXR_attrProxy 0x00000200
90#define kXR_attrSuper 0x00000400
91#define kXR_attrVirtRdr 0x00000800
92
93#define kXR_maxReqRetry 10
94
95// Kind of error inside a XTNetFile's routine (temporary)
96//
98 kGENERICERR = 0, // Generic error
99 kREAD, // Error while reading from stream
100 kWRITE, // Error while writing to stream
101 kREDIRCONNECT, // Error redirecting to a given host
102 kOK, // Everything seems ok
103 kNOMORESTREAMS // No more available stream IDs for
104 // async processing
106
107//______________________________________________
108// PROTOCOL DEFINITION: CLIENT'S REQUESTS TYPES
109//______________________________________________
110//
112 kXR_auth = 3000,
113 kXR_query, // 3001
114 kXR_chmod, // 3002
115 kXR_close, // 3003
116 kXR_dirlist, // 3004
117 kXR_getfile, // 3005
119 kXR_login, // 3007
120 kXR_mkdir, // 3008
121 kXR_mv, // 3009
122 kXR_open, // 3010
123 kXR_ping, // 3011
124 kXR_putfile, // 3012
125 kXR_read, // 3013
126 kXR_rm, // 3014
127 kXR_rmdir, // 3015
128 kXR_sync, // 3016
129 kXR_stat, // 3017
130 kXR_set, // 3018
131 kXR_write, // 3019
132 kXR_admin, // 3020
133 kXR_prepare, // 3021
134 kXR_statx, // 3022
135 kXR_endsess, // 3023
136 kXR_bind, // 3024
137 kXR_readv, // 3025
138 kXR_verifyw, // 3026
139 kXR_locate, // 3027
141 kXR_sigver, // 3029
142 kXR_decrypt, // 3030
143 kXR_writev, // 3031
144 kXR_REQFENCE // Always last valid request code +1
146
147// OPEN MODE FOR A REMOTE FILE
149 kXR_ur = 0x100,
150 kXR_uw = 0x080,
151 kXR_ux = 0x040,
152 kXR_gr = 0x020,
153 kXR_gw = 0x010,
154 kXR_gx = 0x008,
155 kXR_or = 0x004,
156 kXR_ow = 0x002,
157 kXR_ox = 0x001
159
162 kXR_mkdirpath = 1
164
165// this is a bitmask
174 kXR_lclfile = 64
176
177// this is a bitmask
181 kXR_asyncap = 128
183
184// this is a single number that goes into capver as the version
185//
187 kXR_ver000 = 0, // Old clients predating history
188 kXR_ver001 = 1, // Generally implemented 2005 protocol
189 kXR_ver002 = 2, // Same as 1 but adds asyncresp recognition
190 kXR_ver003 = 3, // The 2011-2012 rewritten client
191 kXR_ver004 = 4 // The 2016 sign-capable client
193
195 kXR_vfs = 1
197
207 kXR_bkpexist=128
209
212 kXR_dstat = 2
214
216 kXR_compress = 1, // also locate (return unique hosts)
223 kXR_refresh = 128, // also locate
225 kXR_prefname = 256, // only locate
228 kXR_4dirlist = 1024, // for locate intending a dirlist
230 kXR_posc = 4096,
231 kXR_nowait = 8192, // also locate
232 kXR_seqio =16384,
233 kXR_open_wrto=32768
235
237 kXR_secreqs = 1 // Return security requirements
239
251 kXR_Qopaqug=64
253
256 kXR_crc32 = 1
258
261 kXR_useradmin = 1
263
273
274 kXR_evict = 0x0001 // optionsX: file no longer useful
276
277// Version used for kXR_decrypt and kXR_sigver and is set in
278// Set in SigverRequest::version, DecryptRequest::version and
279// ServerResponseReqs_Protocol::secver
280#define kXR_secver_0 0
281
282// Flags for kXR_decrypt and kXR_sigver
284 kXR_nodata = 1 // Request payload was not hashed or encrypted
286
287// Cryptography used for kXR_sigver SigverRequest::crypto
289 kXR_SHA256 = 0x01, // Hash used
290 kXR_HashMask = 0x0f, // Mak to extract the hash type
291 kXR_rsaKey = 0x80 // The rsa key was used
293
294//_______________________________________________
295// PROTOCOL DEFINITION: SERVER'S RESPONSES TYPES
296//_______________________________________________
297//
307 kXR_noResponsesYet = 10000
309
310//_______________________________________________
311// PROTOCOL DEFINITION: SERVER"S ATTN CODES
312//_______________________________________________
313
325
326//_______________________________________________
327// PROTOCOL DEFINITION: SERVER'S ERROR CODES
328//_______________________________________________
329//
336 kXR_FSError, // 3005
338 kXR_IOError, // 3007
340 kXR_NoSpace, // 3009
346 kXR_NotFile, // 3015
361 kXR_ERRFENCE, // Always last valid errcode + 1
362 kXR_noErrorYet = 10000
364
365
366//______________________________________________
367// PROTOCOL DEFINITION: CLIENT'S REQUESTS STRUCTS
368//______________________________________________
369//
370// We need to pack structures sent all over the net!
371// __attribute__((packed)) assures no padding bytes.
372//
373// Nice bodies of the headers for the client requests.
374// Note that the protocol specifies these values to be in network
375// byte order when sent
376//
377// G.Ganis: use of flat structures to avoid packing options
378
384};
391};
397};
404};
412};
416 kXR_unt16 expectrid; // Request code of subsequent request
417 kXR_char version; // Security version being used (see enum XSecVersion)
418 kXR_char flags; // One or more flags defined in enum XSecFlags
421};
428};
434};
442};
449};
456 kXR_char ability; // See XLoginAbility enum flags
457 kXR_char capver[1]; // See XLoginCapVer enum flags
460};
468};
475};
483};
484
490};
494 kXR_int32 clientpv; // 2.9.7 or higher
495 kXR_char flags; // 3.1.0 or higher
498};
504 kXR_unt16 port; // 2.9.9 or higher
505 kXR_unt16 optionX; // Extended options
508};
516};
525};
533};
540};
546};
552};
557 kXR_char modifier; // For security purposes, should be zero
559};
563 kXR_unt16 expectrid; // Request code of subsequent request
564 kXR_char version; // Security version being used (see XSecVersion)
565 kXR_char flags; // One or more flags defined in enum (see XSecFlags)
566 kXR_unt64 seqno; // Monotonically increasing number (part of hash)
567 kXR_char crypto; // Cryptography used (see XSecCrypto)
570};
578};
585};
593};
602};
606 kXR_char options; // See static const ints below
609
610 static const kXR_int32 doSync = 0x01;
611};
618 kXR_char vertype; // One of XVerifyType
620 kXR_int32 dlen; // Includes crc length
621};
622
628};
629
630typedef union {
631 struct ClientRequestHdr header;
632 struct ClientAdminRequest admin;
633 struct ClientAuthRequest auth;
634 struct ClientBindRequest bind;
635 struct ClientChmodRequest chmod;
637 struct ClientDecryptRequest decrypt;
638 struct ClientDirlistRequest dirlist;
639 struct ClientEndsessRequest endsess;
640 struct ClientGetfileRequest getfile;
641 struct ClientLocateRequest locate;
642 struct ClientLoginRequest login;
646 struct ClientPingRequest ping;
647 struct ClientPrepareRequest prepare;
648 struct ClientProtocolRequest protocol;
649 struct ClientPutfileRequest putfile;
650 struct ClientQueryRequest query;
656 struct ClientSigverRequest sigver;
658 struct ClientSyncRequest sync;
663
664typedef union {
665 struct ClientRequestHdr header;
666 struct ClientDecryptRequest decrypt;
667 struct ClientSigverRequest sigver;
669
674};
675
676struct read_args {
679 // his struct is followed by an array of readahead_list
680};
681
682// New additions are placed in a specia namespace to avoid conflicts
683//
684namespace XrdProto
685{
686struct read_list {
690};
691
696};
697}
698
699//_____________________________________________________________________
700// PROTOCOL DEFINITION: SERVER'S RESPONSE
701//_____________________________________________________________________
702//
703
704// Nice header for the server response.
705// Note that the protocol specifies these values to be in network
706// byte order when sent
707//
708// G.Ganis: The following structures never need padding bytes:
709// no need of packing options
710
715};
716
717// Body for the kXR_bind response... useful
720};
721
722// Body for the kXR_open response... useful
725 kXR_int32 cpsize; // cpsize & cptype returned if kXR_compress *or*
726 kXR_char cptype[4]; // kXR_retstat is specified
727}; // info will follow if kXR_retstat is specified
728
729// The following information is returned in the response body when kXR_secreqs
730// is set in ClientProtocolRequest::flags. Note that the size of secvec is
731// defined by secvsz and will not be present when secvsz == 0.
733 kXR_char reqindx; // Request index
734 kXR_char reqsreq; // Request signing requirement
735};
736
738 kXR_char theTag; // Always the character 'S' to identify struct
739 kXR_char rsvd; // Reserved for the future (always 0 for now)
740 kXR_char secver; // Security version
741 kXR_char secopt; // Security options
742 kXR_char seclvl; // Security level when secvsz == 0
743 kXR_char secvsz; // Number of items in secvec (i.e. its length/2)
745};
746
747// Options reflected in protocol response ServerResponseReqs_Protocol::secopt
748//
749#define kXR_secOData 0x01
750#define kXR_secOFrce 0x02
751
752// Security level definitions (these are predefined but can be over-ridden)
753//
754#define kXR_secNone 0
755#define kXR_secCompatible 1
756#define kXR_secStandard 2
757#define kXR_secIntense 3
758#define kXR_secPedantic 4
759
760// Requirements one of which set in each ServerResponseReqs_Protocol::secvec
761//
762#define kXR_signIgnore 0
763#define kXR_signLikely 1
764#define kXR_signNeeded 2
765
766// Body for the kXR_protocol response... useful
770 ServerResponseReqs_Protocol secreq; // Only for V3.1.0+ && if requested
771};
772
773// Handy definition of the size of the protocol response when the security
774// information is not present.
775//
776#define kXR_ShortProtRespLen sizeof(ServerResponseBody_Protocol)-\
777 sizeof(ServerResponseReqs_Protocol)
778
781 kXR_char sec[4096]; // Should be sufficient for every use
782};
783
786 char host[4096]; // Should be sufficient for every use
787};
788
791 char errmsg[4096]; // Should be sufficient for every use
792};
793
796 char infomsg[4096]; // Should be sufficient for every use
797};
798
801};
802
805 char parms[4096]; // Should be sufficient for every use
806};
807
811 char host[4092];
812};
813
816 char reserved[4];
818 char respdata[4096];
819};
820
824};
825
830};
831
833 char data[4096];
834};
835
837 char data[4096];
838};
839
841{
843 union
844 {
856};
857
859
860// The fields to be sent as initial handshake
867};
868
869// The body received after the first handshake's header
874};
875
876
877
879
880struct ALIGN_CHECK {char chkszreq[25-sizeof(ClientRequest)];
882};
883
884/******************************************************************************/
885/* X P r o t o c o l U t i l i t i e s */
886/******************************************************************************/
887
888#include <errno.h>
889#if defined(WIN32)
890#if !defined(ENOTBLK)
891# define ENOTBLK 15
892#endif
893#if !defined(ETXTBSY)
894#define ETXTBSY 26
895#endif
896#if !defined(ENOBUFS)
897#define ENOBUFS 105
898#endif
899#if !defined(ENETUNREACH)
900#define ENETUNREACH 114
901#endif
902#endif
903
904#ifndef ENOATTR
905#define ENOATTR ENODATA
906#endif
907
909{
910public:
911
912// mapError() is the occicial mapping from errno to xrootd protocol error.
913//
914static int mapError(int rc)
915 {if (rc < 0) rc = -rc;
916 switch(rc)
917 {case ENOENT: return kXR_NotFound;
918 case EINVAL: return kXR_ArgInvalid;
919 case EPERM: return kXR_NotAuthorized;
920 case EACCES: return kXR_NotAuthorized;
921 case EIO: return kXR_IOError;
922 case ENOMEM: return kXR_NoMemory;
923 case ENOBUFS: return kXR_NoMemory;
924 case ENOSPC: return kXR_NoSpace;
925 case ENAMETOOLONG: return kXR_ArgTooLong;
926 case ENETUNREACH: return kXR_noserver;
927 case ENOTBLK: return kXR_NotFile;
928 case EISDIR: return kXR_isDirectory;
929 case EEXIST: return kXR_InvalidRequest;
930 case ETXTBSY: return kXR_inProgress;
931 case ENODEV: return kXR_FSError;
932 case EFAULT: return kXR_ServerError;
933 case EDOM: return kXR_ChkSumErr;
934 case EDQUOT: return kXR_overQuota;
935 case EILSEQ: return kXR_SigVerErr;
936 case ERANGE: return kXR_DecryptErr;
937 case EUSERS: return kXR_Overloaded;
938 case EROFS: return kXR_fsReadOnly;
939 case ENOATTR: return kXR_AttrNotFound;
940 case EPROTOTYPE: return kXR_TLSRequired;
941 case EADDRNOTAVAIL: return kXR_noReplicas;
942 default: return kXR_FSError;
943 }
944 }
945
946static int toErrno( int xerr )
947{
948 switch(xerr)
949 {case kXR_ArgInvalid: return EINVAL;
950 case kXR_ArgMissing: return EINVAL;
951 case kXR_ArgTooLong: return ENAMETOOLONG;
952 case kXR_FileLocked: return EDEADLK;
953 case kXR_FileNotOpen: return EBADF;
954 case kXR_FSError: return EIO;
955 case kXR_InvalidRequest:return EEXIST;
956 case kXR_IOError: return EIO;
957 case kXR_NoMemory: return ENOMEM;
958 case kXR_NoSpace: return ENOSPC;
959 case kXR_NotAuthorized: return EACCES;
960 case kXR_NotFound: return ENOENT;
961 case kXR_ServerError: return ENOMSG;
962 case kXR_Unsupported: return ENOSYS;
963 case kXR_noserver: return EHOSTUNREACH;
964 case kXR_NotFile: return ENOTBLK;
965 case kXR_isDirectory: return EISDIR;
966 case kXR_Cancelled: return ECANCELED;
967 case kXR_ChkLenErr: return EDOM;
968 case kXR_ChkSumErr: return EDOM;
969 case kXR_inProgress: return EINPROGRESS;
970 case kXR_overQuota: return EDQUOT;
971 case kXR_SigVerErr: return EILSEQ;
972 case kXR_DecryptErr: return ERANGE;
973 case kXR_Overloaded: return EUSERS;
974 case kXR_fsReadOnly: return EROFS;
975 case kXR_BadPayload: return EINVAL;
976 case kXR_AttrNotFound: return ENOATTR;
977 case kXR_TLSRequired: return EPROTOTYPE;
978 case kXR_noReplicas: return EADDRNOTAVAIL;
979 default: return ENOMSG;
980 }
981}
982
983static const char *errName(kXR_int32 errCode);
984
985static const char *reqName(kXR_unt16 reqCode);
986};
987#endif
XActionCode
Definition: XProtocol.hh:314
@ kXR_asyncgo
Definition: XProtocol.hh:322
@ kXR_asyncwt
Definition: XProtocol.hh:319
@ kXR_asynunav
Definition: XProtocol.hh:321
@ kXR_asynresp
Definition: XProtocol.hh:323
@ kXR_asyncav
Definition: XProtocol.hh:320
@ kXR_asyncms
Definition: XProtocol.hh:317
@ kXR_asyncab
Definition: XProtocol.hh:315
@ kXR_asyncrd
Definition: XProtocol.hh:318
@ kXR_asyncdi
Definition: XProtocol.hh:316
XErrorCode
Definition: XProtocol.hh:330
@ kXR_ArgInvalid
Definition: XProtocol.hh:331
@ kXR_InvalidRequest
Definition: XProtocol.hh:337
@ kXR_ArgMissing
Definition: XProtocol.hh:332
@ kXR_fsReadOnly
Definition: XProtocol.hh:356
@ kXR_TLSRequired
Definition: XProtocol.hh:359
@ kXR_SigVerErr
Definition: XProtocol.hh:353
@ kXR_AttrNotFound
Definition: XProtocol.hh:358
@ kXR_NotAuthorized
Definition: XProtocol.hh:341
@ kXR_NotFound
Definition: XProtocol.hh:342
@ kXR_FileLocked
Definition: XProtocol.hh:334
@ kXR_ERRFENCE
Definition: XProtocol.hh:361
@ kXR_noErrorYet
Definition: XProtocol.hh:362
@ kXR_ChkSumErr
Definition: XProtocol.hh:350
@ kXR_DecryptErr
Definition: XProtocol.hh:354
@ kXR_overQuota
Definition: XProtocol.hh:352
@ kXR_BadPayload
Definition: XProtocol.hh:357
@ kXR_NoSpace
Definition: XProtocol.hh:340
@ kXR_FileNotOpen
Definition: XProtocol.hh:335
@ kXR_isDirectory
Definition: XProtocol.hh:347
@ kXR_noReplicas
Definition: XProtocol.hh:360
@ kXR_inProgress
Definition: XProtocol.hh:351
@ kXR_NotFile
Definition: XProtocol.hh:346
@ kXR_Unsupported
Definition: XProtocol.hh:344
@ kXR_Cancelled
Definition: XProtocol.hh:348
@ kXR_ServerError
Definition: XProtocol.hh:343
@ kXR_Overloaded
Definition: XProtocol.hh:355
@ kXR_ArgTooLong
Definition: XProtocol.hh:333
@ kXR_noserver
Definition: XProtocol.hh:345
@ kXR_ChkLenErr
Definition: XProtocol.hh:349
@ kXR_IOError
Definition: XProtocol.hh:338
@ kXR_FSError
Definition: XProtocol.hh:336
@ kXR_NoMemory
Definition: XProtocol.hh:339
XReqErrorType
Definition: XProtocol.hh:97
@ kNOMORESTREAMS
Definition: XProtocol.hh:103
@ kOK
Definition: XProtocol.hh:102
@ kREAD
Definition: XProtocol.hh:99
@ kGENERICERR
Definition: XProtocol.hh:98
@ kWRITE
Definition: XProtocol.hh:100
@ kREDIRCONNECT
Definition: XProtocol.hh:101
void ServerResponseHeader2NetFmt(struct ServerResponseHeader *srh)
XVerifyType
Definition: XProtocol.hh:254
@ kXR_crc32
Definition: XProtocol.hh:256
@ kXR_nocrc
Definition: XProtocol.hh:255
#define ENOATTR
Definition: XProtocol.hh:905
XOpenRequestOption
Definition: XProtocol.hh:215
@ kXR_open_wrto
Definition: XProtocol.hh:233
@ kXR_compress
Definition: XProtocol.hh:216
@ kXR_async
Definition: XProtocol.hh:222
@ kXR_delete
Definition: XProtocol.hh:217
@ kXR_prefname
Definition: XProtocol.hh:225
@ kXR_nowait
Definition: XProtocol.hh:231
@ kXR_open_read
Definition: XProtocol.hh:220
@ kXR_open_updt
Definition: XProtocol.hh:221
@ kXR_mkpath
Definition: XProtocol.hh:224
@ kXR_seqio
Definition: XProtocol.hh:232
@ kXR_replica
Definition: XProtocol.hh:229
@ kXR_posc
Definition: XProtocol.hh:230
@ kXR_refresh
Definition: XProtocol.hh:223
@ kXR_new
Definition: XProtocol.hh:219
@ kXR_force
Definition: XProtocol.hh:218
@ kXR_4dirlist
Definition: XProtocol.hh:228
@ kXR_open_apnd
Definition: XProtocol.hh:226
@ kXR_retstat
Definition: XProtocol.hh:227
XResponseType
Definition: XProtocol.hh:298
@ kXR_noResponsesYet
Definition: XProtocol.hh:307
@ kXR_waitresp
Definition: XProtocol.hh:306
@ kXR_redirect
Definition: XProtocol.hh:304
@ kXR_oksofar
Definition: XProtocol.hh:300
@ kXR_ok
Definition: XProtocol.hh:299
@ kXR_authmore
Definition: XProtocol.hh:302
@ kXR_attn
Definition: XProtocol.hh:301
@ kXR_wait
Definition: XProtocol.hh:305
@ kXR_error
Definition: XProtocol.hh:303
XDirlistRequestOption
Definition: XProtocol.hh:210
@ kXR_dstat
Definition: XProtocol.hh:212
@ kXR_online
Definition: XProtocol.hh:211
XRequestTypes
Definition: XProtocol.hh:111
@ kXR_read
Definition: XProtocol.hh:125
@ kXR_open
Definition: XProtocol.hh:122
@ kXR_writev
Definition: XProtocol.hh:143
@ kXR_readv
Definition: XProtocol.hh:137
@ kXR_mkdir
Definition: XProtocol.hh:120
@ kXR_sync
Definition: XProtocol.hh:128
@ kXR_REQFENCE
Definition: XProtocol.hh:144
@ kXR_chmod
Definition: XProtocol.hh:114
@ kXR_getfile
Definition: XProtocol.hh:117
@ kXR_decrypt
Definition: XProtocol.hh:142
@ kXR_bind
Definition: XProtocol.hh:136
@ kXR_dirlist
Definition: XProtocol.hh:116
@ kXR_sigver
Definition: XProtocol.hh:141
@ kXR_rm
Definition: XProtocol.hh:126
@ kXR_query
Definition: XProtocol.hh:113
@ kXR_write
Definition: XProtocol.hh:131
@ kXR_login
Definition: XProtocol.hh:119
@ kXR_auth
Definition: XProtocol.hh:112
@ kXR_endsess
Definition: XProtocol.hh:135
@ kXR_set
Definition: XProtocol.hh:130
@ kXR_rmdir
Definition: XProtocol.hh:127
@ kXR_statx
Definition: XProtocol.hh:134
@ kXR_truncate
Definition: XProtocol.hh:140
@ kXR_protocol
Definition: XProtocol.hh:118
@ kXR_verifyw
Definition: XProtocol.hh:138
@ kXR_mv
Definition: XProtocol.hh:121
@ kXR_admin
Definition: XProtocol.hh:132
@ kXR_ping
Definition: XProtocol.hh:123
@ kXR_stat
Definition: XProtocol.hh:129
@ kXR_locate
Definition: XProtocol.hh:139
@ kXR_close
Definition: XProtocol.hh:115
@ kXR_putfile
Definition: XProtocol.hh:124
@ kXR_prepare
Definition: XProtocol.hh:133
XLoginCapVer
Definition: XProtocol.hh:178
@ kXR_vermask
Definition: XProtocol.hh:180
@ kXR_asyncap
Definition: XProtocol.hh:181
@ kXR_lcvnone
Definition: XProtocol.hh:179
XStatRequestOption
Definition: XProtocol.hh:194
@ kXR_vfs
Definition: XProtocol.hh:195
XMkdirOptions
Definition: XProtocol.hh:160
@ kXR_mkdirpath
Definition: XProtocol.hh:162
@ kXR_mknone
Definition: XProtocol.hh:161
XPrepRequestOption
Definition: XProtocol.hh:264
@ kXR_wmode
Definition: XProtocol.hh:269
@ kXR_evict
Definition: XProtocol.hh:274
@ kXR_usetcp
Definition: XProtocol.hh:272
@ kXR_cancel
Definition: XProtocol.hh:265
@ kXR_fresh
Definition: XProtocol.hh:271
@ kXR_notify
Definition: XProtocol.hh:266
@ kXR_coloc
Definition: XProtocol.hh:270
@ kXR_stage
Definition: XProtocol.hh:268
@ kXR_noerrs
Definition: XProtocol.hh:267
XSecFlags
Definition: XProtocol.hh:283
@ kXR_nodata
Definition: XProtocol.hh:284
XLogonType
Definition: XProtocol.hh:259
@ kXR_useradmin
Definition: XProtocol.hh:261
@ kXR_useruser
Definition: XProtocol.hh:260
XOpenRequestMode
Definition: XProtocol.hh:148
@ kXR_gw
Definition: XProtocol.hh:153
@ kXR_ur
Definition: XProtocol.hh:149
@ kXR_uw
Definition: XProtocol.hh:150
@ kXR_gr
Definition: XProtocol.hh:152
@ kXR_ow
Definition: XProtocol.hh:156
@ kXR_gx
Definition: XProtocol.hh:154
@ kXR_or
Definition: XProtocol.hh:155
@ kXR_ox
Definition: XProtocol.hh:157
@ kXR_ux
Definition: XProtocol.hh:151
XStatRespFlags
Definition: XProtocol.hh:198
@ kXR_readable
Definition: XProtocol.hh:204
@ kXR_file
Definition: XProtocol.hh:199
@ kXR_isDir
Definition: XProtocol.hh:201
@ kXR_offline
Definition: XProtocol.hh:203
@ kXR_bkpexist
Definition: XProtocol.hh:207
@ kXR_other
Definition: XProtocol.hh:202
@ kXR_poscpend
Definition: XProtocol.hh:206
@ kXR_writable
Definition: XProtocol.hh:205
@ kXR_xset
Definition: XProtocol.hh:200
XQueryType
Definition: XProtocol.hh:240
@ kXR_QPrep
Definition: XProtocol.hh:242
@ kXR_Qopaqug
Definition: XProtocol.hh:251
@ kXR_Qconfig
Definition: XProtocol.hh:247
@ kXR_Qopaquf
Definition: XProtocol.hh:250
@ kXR_Qckscan
Definition: XProtocol.hh:246
@ kXR_Qxattr
Definition: XProtocol.hh:244
@ kXR_Qspace
Definition: XProtocol.hh:245
@ kXR_Qvisa
Definition: XProtocol.hh:248
@ kXR_QStats
Definition: XProtocol.hh:241
@ kXR_Qcksum
Definition: XProtocol.hh:243
@ kXR_Qopaque
Definition: XProtocol.hh:249
XLoginVersion
Definition: XProtocol.hh:186
@ kXR_ver001
Definition: XProtocol.hh:188
@ kXR_ver003
Definition: XProtocol.hh:190
@ kXR_ver000
Definition: XProtocol.hh:187
@ kXR_ver004
Definition: XProtocol.hh:191
@ kXR_ver002
Definition: XProtocol.hh:189
XLoginAbility
Definition: XProtocol.hh:166
@ kXR_readrdok
Definition: XProtocol.hh:170
@ kXR_fullurl
Definition: XProtocol.hh:168
@ kXR_onlyprv4
Definition: XProtocol.hh:172
@ kXR_lclfile
Definition: XProtocol.hh:174
@ kXR_multipr
Definition: XProtocol.hh:169
@ kXR_nothing
Definition: XProtocol.hh:167
@ kXR_hasipv64
Definition: XProtocol.hh:171
@ kXR_onlyprv6
Definition: XProtocol.hh:173
XSecCrypto
Definition: XProtocol.hh:288
@ kXR_SHA256
Definition: XProtocol.hh:289
@ kXR_HashMask
Definition: XProtocol.hh:290
@ kXR_rsaKey
Definition: XProtocol.hh:291
XProtocolRequestFlags
Definition: XProtocol.hh:236
@ kXR_secreqs
Definition: XProtocol.hh:237
kXR_int32 ServerResponseType
Definition: XProtocol.hh:878
unsigned long long kXR_unt64
Definition: XPtypes.hh:99
long long kXR_int64
Definition: XPtypes.hh:98
int kXR_int32
Definition: XPtypes.hh:89
short kXR_int16
Definition: XPtypes.hh:66
unsigned short kXR_unt16
Definition: XPtypes.hh:67
unsigned char kXR_char
Definition: XPtypes.hh:65
#define close(a)
Definition: XrdPosix.hh:43
#define rmdir(a)
Definition: XrdPosix.hh:92
#define write(a, b, c)
Definition: XrdPosix.hh:110
#define mkdir(a, b)
Definition: XrdPosix.hh:69
#define open
Definition: XrdPosix.hh:71
#define writev(a, b, c)
Definition: XrdPosix.hh:112
#define readv(a, b, c)
Definition: XrdPosix.hh:79
#define stat(a, b)
Definition: XrdPosix.hh:96
#define truncate(a, b)
Definition: XrdPosix.hh:106
#define read(a, b, c)
Definition: XrdPosix.hh:77
Definition: XProtocol.hh:909
static int toErrno(int xerr)
Definition: XProtocol.hh:946
static const char * errName(kXR_int32 errCode)
static int mapError(int rc)
Definition: XProtocol.hh:914
static const char * reqName(kXR_unt16 reqCode)
Definition: XProtocol.hh:685
Definition: XProtocol.hh:880
char chkszreq[25-sizeof(ClientRequest)]
Definition: XProtocol.hh:880
char chkszrsp[9-sizeof(ServerResponseHeader)]
Definition: XProtocol.hh:881
Definition: XProtocol.hh:379
kXR_int32 dlen
Definition: XProtocol.hh:383
kXR_char streamid[2]
Definition: XProtocol.hh:380
kXR_unt16 requestid
Definition: XProtocol.hh:381
kXR_char reserved[16]
Definition: XProtocol.hh:382
Definition: XProtocol.hh:385
kXR_int32 dlen
Definition: XProtocol.hh:390
kXR_char streamid[2]
Definition: XProtocol.hh:386
kXR_char credtype[4]
Definition: XProtocol.hh:389
kXR_char reserved[12]
Definition: XProtocol.hh:388
kXR_unt16 requestid
Definition: XProtocol.hh:387
Definition: XProtocol.hh:392
kXR_int32 dlen
Definition: XProtocol.hh:396
kXR_char streamid[2]
Definition: XProtocol.hh:393
kXR_char sessid[16]
Definition: XProtocol.hh:395
kXR_unt16 requestid
Definition: XProtocol.hh:394
Definition: XProtocol.hh:398
kXR_unt16 mode
Definition: XProtocol.hh:402
kXR_char reserved[14]
Definition: XProtocol.hh:401
kXR_int32 dlen
Definition: XProtocol.hh:403
kXR_unt16 requestid
Definition: XProtocol.hh:400
kXR_char streamid[2]
Definition: XProtocol.hh:399
Definition: XProtocol.hh:405
kXR_unt16 requestid
Definition: XProtocol.hh:407
kXR_char streamid[2]
Definition: XProtocol.hh:406
kXR_int32 dlen
Definition: XProtocol.hh:411
kXR_char fhandle[4]
Definition: XProtocol.hh:408
kXR_int64 fsize
Definition: XProtocol.hh:409
kXR_char reserved[4]
Definition: XProtocol.hh:410
Definition: XProtocol.hh:413
kXR_char streamid[2]
Definition: XProtocol.hh:414
kXR_char flags
Definition: XProtocol.hh:418
kXR_unt16 expectrid
Definition: XProtocol.hh:416
kXR_int32 dlen
Definition: XProtocol.hh:420
kXR_char reserved[12]
Definition: XProtocol.hh:419
kXR_unt16 requestid
Definition: XProtocol.hh:415
kXR_char version
Definition: XProtocol.hh:417
Definition: XProtocol.hh:422
kXR_char options[1]
Definition: XProtocol.hh:426
kXR_unt16 requestid
Definition: XProtocol.hh:424
kXR_char streamid[2]
Definition: XProtocol.hh:423
kXR_char reserved[15]
Definition: XProtocol.hh:425
kXR_int32 dlen
Definition: XProtocol.hh:427
Definition: XProtocol.hh:429
kXR_unt16 requestid
Definition: XProtocol.hh:431
kXR_char sessid[16]
Definition: XProtocol.hh:432
kXR_int32 dlen
Definition: XProtocol.hh:433
kXR_char streamid[2]
Definition: XProtocol.hh:430
Definition: XProtocol.hh:435
kXR_unt16 requestid
Definition: XProtocol.hh:437
kXR_int32 options
Definition: XProtocol.hh:438
kXR_int32 buffsz
Definition: XProtocol.hh:440
kXR_char reserved[8]
Definition: XProtocol.hh:439
kXR_int32 dlen
Definition: XProtocol.hh:441
kXR_char streamid[2]
Definition: XProtocol.hh:436
Definition: XProtocol.hh:861
kXR_int32 fourth
Definition: XProtocol.hh:865
kXR_int32 first
Definition: XProtocol.hh:862
kXR_int32 fifth
Definition: XProtocol.hh:866
kXR_int32 third
Definition: XProtocol.hh:864
kXR_int32 second
Definition: XProtocol.hh:863
Definition: XProtocol.hh:443
kXR_char streamid[2]
Definition: XProtocol.hh:444
kXR_unt16 requestid
Definition: XProtocol.hh:445
kXR_char reserved[14]
Definition: XProtocol.hh:447
kXR_int32 dlen
Definition: XProtocol.hh:448
kXR_unt16 options
Definition: XProtocol.hh:446
Definition: XProtocol.hh:450
kXR_int32 pid
Definition: XProtocol.hh:453
kXR_char role[1]
Definition: XProtocol.hh:458
kXR_unt16 requestid
Definition: XProtocol.hh:452
kXR_char streamid[2]
Definition: XProtocol.hh:451
kXR_char username[8]
Definition: XProtocol.hh:454
kXR_char ability
Definition: XProtocol.hh:456
kXR_char reserved
Definition: XProtocol.hh:455
kXR_int32 dlen
Definition: XProtocol.hh:459
kXR_char capver[1]
Definition: XProtocol.hh:457
Definition: XProtocol.hh:461
kXR_unt16 mode
Definition: XProtocol.hh:466
kXR_char streamid[2]
Definition: XProtocol.hh:462
kXR_unt16 requestid
Definition: XProtocol.hh:463
kXR_char options[1]
Definition: XProtocol.hh:464
kXR_char reserved[13]
Definition: XProtocol.hh:465
kXR_int32 dlen
Definition: XProtocol.hh:467
Definition: XProtocol.hh:469
kXR_int16 arg1len
Definition: XProtocol.hh:473
kXR_char streamid[2]
Definition: XProtocol.hh:470
kXR_int32 dlen
Definition: XProtocol.hh:474
kXR_unt16 requestid
Definition: XProtocol.hh:471
kXR_char reserved[14]
Definition: XProtocol.hh:472
Definition: XProtocol.hh:476
kXR_unt16 requestid
Definition: XProtocol.hh:478
kXR_unt16 options
Definition: XProtocol.hh:480
kXR_int32 dlen
Definition: XProtocol.hh:482
kXR_unt16 mode
Definition: XProtocol.hh:479
kXR_char reserved[12]
Definition: XProtocol.hh:481
kXR_char streamid[2]
Definition: XProtocol.hh:477
Definition: XProtocol.hh:485
kXR_unt16 requestid
Definition: XProtocol.hh:487
kXR_char streamid[2]
Definition: XProtocol.hh:486
kXR_int32 dlen
Definition: XProtocol.hh:489
kXR_char reserved[16]
Definition: XProtocol.hh:488
Definition: XProtocol.hh:499
kXR_unt16 requestid
Definition: XProtocol.hh:501
kXR_int32 dlen
Definition: XProtocol.hh:507
kXR_char reserved[10]
Definition: XProtocol.hh:506
kXR_unt16 optionX
Definition: XProtocol.hh:505
kXR_char options
Definition: XProtocol.hh:502
kXR_unt16 port
Definition: XProtocol.hh:504
kXR_char streamid[2]
Definition: XProtocol.hh:500
kXR_char prty
Definition: XProtocol.hh:503
Definition: XProtocol.hh:491
kXR_char reserved[11]
Definition: XProtocol.hh:496
kXR_int32 clientpv
Definition: XProtocol.hh:494
kXR_unt16 requestid
Definition: XProtocol.hh:493
kXR_char flags
Definition: XProtocol.hh:495
kXR_int32 dlen
Definition: XProtocol.hh:497
kXR_char streamid[2]
Definition: XProtocol.hh:492
Definition: XProtocol.hh:509
kXR_char reserved[8]
Definition: XProtocol.hh:513
kXR_int32 dlen
Definition: XProtocol.hh:515
kXR_int32 buffsz
Definition: XProtocol.hh:514
kXR_char streamid[2]
Definition: XProtocol.hh:510
kXR_unt16 requestid
Definition: XProtocol.hh:511
kXR_int32 options
Definition: XProtocol.hh:512
Definition: XProtocol.hh:517
kXR_unt16 requestid
Definition: XProtocol.hh:519
kXR_int32 dlen
Definition: XProtocol.hh:524
kXR_char reserved1[2]
Definition: XProtocol.hh:521
kXR_unt16 infotype
Definition: XProtocol.hh:520
kXR_char reserved2[8]
Definition: XProtocol.hh:523
kXR_char fhandle[4]
Definition: XProtocol.hh:522
kXR_char streamid[2]
Definition: XProtocol.hh:518
Definition: XProtocol.hh:526
kXR_int64 offset
Definition: XProtocol.hh:530
kXR_unt16 requestid
Definition: XProtocol.hh:528
kXR_char streamid[2]
Definition: XProtocol.hh:527
kXR_char fhandle[4]
Definition: XProtocol.hh:529
kXR_int32 dlen
Definition: XProtocol.hh:532
kXR_int32 rlen
Definition: XProtocol.hh:531
Definition: XProtocol.hh:534
kXR_char reserved[15]
Definition: XProtocol.hh:537
kXR_unt16 requestid
Definition: XProtocol.hh:536
kXR_char streamid[2]
Definition: XProtocol.hh:535
kXR_int32 dlen
Definition: XProtocol.hh:539
kXR_char pathid
Definition: XProtocol.hh:538
Definition: XProtocol.hh:623
kXR_char body[16]
Definition: XProtocol.hh:626
kXR_char streamid[2]
Definition: XProtocol.hh:624
kXR_unt16 requestid
Definition: XProtocol.hh:625
kXR_int32 dlen
Definition: XProtocol.hh:627
Definition: XProtocol.hh:541
kXR_char reserved[16]
Definition: XProtocol.hh:544
kXR_int32 dlen
Definition: XProtocol.hh:545
kXR_char streamid[2]
Definition: XProtocol.hh:542
kXR_unt16 requestid
Definition: XProtocol.hh:543
Definition: XProtocol.hh:547
kXR_int32 dlen
Definition: XProtocol.hh:551
kXR_char streamid[2]
Definition: XProtocol.hh:548
kXR_unt16 requestid
Definition: XProtocol.hh:549
kXR_char reserved[16]
Definition: XProtocol.hh:550
Definition: XProtocol.hh:553
kXR_char streamid[2]
Definition: XProtocol.hh:554
kXR_unt16 requestid
Definition: XProtocol.hh:555
kXR_int32 dlen
Definition: XProtocol.hh:558
kXR_char modifier
Definition: XProtocol.hh:557
kXR_char reserved[15]
Definition: XProtocol.hh:556
Definition: XProtocol.hh:560
kXR_char streamid[2]
Definition: XProtocol.hh:561
kXR_unt16 requestid
Definition: XProtocol.hh:562
kXR_char crypto
Definition: XProtocol.hh:567
kXR_char rsvd2[3]
Definition: XProtocol.hh:568
kXR_unt16 expectrid
Definition: XProtocol.hh:563
kXR_unt64 seqno
Definition: XProtocol.hh:566
kXR_char flags
Definition: XProtocol.hh:565
kXR_int32 dlen
Definition: XProtocol.hh:569
kXR_char version
Definition: XProtocol.hh:564
Definition: XProtocol.hh:571
kXR_char streamid[2]
Definition: XProtocol.hh:572
kXR_char fhandle[4]
Definition: XProtocol.hh:576
kXR_char reserved[11]
Definition: XProtocol.hh:575
kXR_unt16 requestid
Definition: XProtocol.hh:573
kXR_int32 dlen
Definition: XProtocol.hh:577
kXR_char options
Definition: XProtocol.hh:574
Definition: XProtocol.hh:579
kXR_char reserved[12]
Definition: XProtocol.hh:583
kXR_char fhandle[4]
Definition: XProtocol.hh:582
kXR_char streamid[2]
Definition: XProtocol.hh:580
kXR_int32 dlen
Definition: XProtocol.hh:584
kXR_unt16 requestid
Definition: XProtocol.hh:581
Definition: XProtocol.hh:586
kXR_unt16 requestid
Definition: XProtocol.hh:588
kXR_int64 offset
Definition: XProtocol.hh:590
kXR_char fhandle[4]
Definition: XProtocol.hh:589
kXR_int32 dlen
Definition: XProtocol.hh:592
kXR_char reserved[4]
Definition: XProtocol.hh:591
kXR_char streamid[2]
Definition: XProtocol.hh:587
Definition: XProtocol.hh:612
kXR_unt16 requestid
Definition: XProtocol.hh:614
kXR_int64 offset
Definition: XProtocol.hh:616
kXR_int32 dlen
Definition: XProtocol.hh:620
kXR_char reserved[2]
Definition: XProtocol.hh:619
kXR_char pathid
Definition: XProtocol.hh:617
kXR_char vertype
Definition: XProtocol.hh:618
kXR_char streamid[2]
Definition: XProtocol.hh:613
kXR_char fhandle[4]
Definition: XProtocol.hh:615
Definition: XProtocol.hh:594
kXR_unt16 requestid
Definition: XProtocol.hh:596
kXR_char reserved[3]
Definition: XProtocol.hh:600
kXR_char fhandle[4]
Definition: XProtocol.hh:597
kXR_char streamid[2]
Definition: XProtocol.hh:595
kXR_char pathid
Definition: XProtocol.hh:599
kXR_int32 dlen
Definition: XProtocol.hh:601
kXR_int64 offset
Definition: XProtocol.hh:598
Definition: XProtocol.hh:603
kXR_char streamid[2]
Definition: XProtocol.hh:604
kXR_int32 dlen
Definition: XProtocol.hh:608
kXR_char reserved[15]
Definition: XProtocol.hh:607
kXR_unt16 requestid
Definition: XProtocol.hh:605
static const kXR_int32 doSync
Definition: XProtocol.hh:610
kXR_char options
Definition: XProtocol.hh:606
Definition: XProtocol.hh:870
kXR_int32 msglen
Definition: XProtocol.hh:871
kXR_int32 protover
Definition: XProtocol.hh:872
kXR_int32 msgval
Definition: XProtocol.hh:873
Definition: XProtocol.hh:826
kXR_int32 msec
Definition: XProtocol.hh:829
kXR_int32 actnum
Definition: XProtocol.hh:827
kXR_int32 wsec
Definition: XProtocol.hh:828
Definition: XProtocol.hh:808
kXR_int32 actnum
Definition: XProtocol.hh:809
kXR_int32 port
Definition: XProtocol.hh:810
char host[4092]
Definition: XProtocol.hh:811
Definition: XProtocol.hh:821
kXR_int32 wsec
Definition: XProtocol.hh:823
kXR_int32 actnum
Definition: XProtocol.hh:822
Definition: XProtocol.hh:814
char reserved[4]
Definition: XProtocol.hh:816
char respdata[4096]
Definition: XProtocol.hh:818
kXR_int32 actnum
Definition: XProtocol.hh:815
ServerResponseHeader resphdr
Definition: XProtocol.hh:817
Definition: XProtocol.hh:803
char parms[4096]
Definition: XProtocol.hh:805
kXR_int32 actnum
Definition: XProtocol.hh:804
Definition: XProtocol.hh:832
char data[4096]
Definition: XProtocol.hh:833
Definition: XProtocol.hh:718
kXR_char substreamid
Definition: XProtocol.hh:719
Definition: XProtocol.hh:836
char data[4096]
Definition: XProtocol.hh:837
Definition: XProtocol.hh:789
char errmsg[4096]
Definition: XProtocol.hh:791
kXR_int32 errnum
Definition: XProtocol.hh:790
Definition: XProtocol.hh:779
kXR_char sec[4096]
Definition: XProtocol.hh:781
kXR_char sessid[16]
Definition: XProtocol.hh:780
Definition: XProtocol.hh:723
kXR_int32 cpsize
Definition: XProtocol.hh:725
kXR_char cptype[4]
Definition: XProtocol.hh:726
kXR_char fhandle[4]
Definition: XProtocol.hh:724
Definition: XProtocol.hh:767
kXR_int32 pval
Definition: XProtocol.hh:768
kXR_int32 flags
Definition: XProtocol.hh:769
ServerResponseReqs_Protocol secreq
Definition: XProtocol.hh:770
Definition: XProtocol.hh:784
char host[4096]
Definition: XProtocol.hh:786
kXR_int32 port
Definition: XProtocol.hh:785
Definition: XProtocol.hh:794
kXR_int32 seconds
Definition: XProtocol.hh:795
char infomsg[4096]
Definition: XProtocol.hh:796
Definition: XProtocol.hh:799
kXR_int32 seconds
Definition: XProtocol.hh:800
Definition: XProtocol.hh:711
kXR_unt16 status
Definition: XProtocol.hh:713
kXR_char streamid[2]
Definition: XProtocol.hh:712
kXR_int32 dlen
Definition: XProtocol.hh:714
Definition: XProtocol.hh:737
kXR_char secopt
Definition: XProtocol.hh:741
ServerResponseSVec_Protocol secvec
Definition: XProtocol.hh:744
kXR_char secvsz
Definition: XProtocol.hh:743
kXR_char theTag
Definition: XProtocol.hh:738
kXR_char rsvd
Definition: XProtocol.hh:739
kXR_char seclvl
Definition: XProtocol.hh:742
kXR_char secver
Definition: XProtocol.hh:740
Definition: XProtocol.hh:732
kXR_char reqsreq
Definition: XProtocol.hh:734
kXR_char reqindx
Definition: XProtocol.hh:733
Definition: XProtocol.hh:841
union ServerResponse::@0 body
ServerResponseBody_Error error
Definition: XProtocol.hh:845
ServerResponseBody_Redirect redirect
Definition: XProtocol.hh:849
ServerResponseBody_Wait wait
Definition: XProtocol.hh:847
ServerResponseBody_Attn attn
Definition: XProtocol.hh:850
ServerResponseBody_Waitresp waitresp
Definition: XProtocol.hh:848
ServerResponseBody_Login login
Definition: XProtocol.hh:852
ServerResponseBody_Buffer buffer
Definition: XProtocol.hh:853
ServerResponseBody_Authmore authmore
Definition: XProtocol.hh:846
ServerResponseBody_Bind bind
Definition: XProtocol.hh:854
ServerResponseBody_Protocol protocol
Definition: XProtocol.hh:851
ServerResponseHeader hdr
Definition: XProtocol.hh:842
Definition: XProtocol.hh:686
kXR_int32 rlen
Definition: XProtocol.hh:688
kXR_char fhandle[4]
Definition: XProtocol.hh:687
kXR_int64 offset
Definition: XProtocol.hh:689
Definition: XProtocol.hh:692
kXR_char fhandle[4]
Definition: XProtocol.hh:693
kXR_int64 offset
Definition: XProtocol.hh:695
kXR_int32 wlen
Definition: XProtocol.hh:694
Definition: XProtocol.hh:676
kXR_char pathid
Definition: XProtocol.hh:677
kXR_char reserved[7]
Definition: XProtocol.hh:678
Definition: XProtocol.hh:670
kXR_char fhandle[4]
Definition: XProtocol.hh:671
kXR_int32 rlen
Definition: XProtocol.hh:672
kXR_int64 offset
Definition: XProtocol.hh:673
Definition: XProtocol.hh:630
Definition: XProtocol.hh:664