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 /* XRootD is distributed in the hope that it will be useful, but WITHOUT */
20 /* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
21 /* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
22 /* License for more details. */
23 /* */
24 /* You should have received a copy of the GNU Lesser General Public License */
25 /* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
26 /* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
27 /* */
28 /* The copyright holder's institutional names and contributor's names may not */
29 /* be used to endorse or promote products derived from this software without */
30 /* specific prior written permission of the institution or contributor. */
31 /******************************************************************************/
32 
33 //#ifndef __GNUC__
34 //#define __attribute__(x)
35 //#ifdef SUNCC
36 //#pragma pack(4)
37 //#endif
38 //#endif
39 
40 #ifdef __CINT__
41 #define __attribute__(x)
42 #endif
43 
44 // The following is the binary representation of the protocol version here.
45 // Protocol version is repesented as three base10 digits x.y.z with x having no
46 // upper limit (i.e. n.9.9 + 1 -> n+1.0.0).
47 //
48 #define kXR_PROTOCOLVERSION 0x00000300
49 #define kXR_PROTOCOLVSTRING "3.0.0"
50 
51 #include "XProtocol/XPtypes.hh"
52 
53 // KINDS of SERVERS
54 //
55 //
56 #define kXR_DataServer 1
57 #define kXR_LBalServer 0
58 
59 // The below are defined for protocol version 2.9.7 or higher
60 //
61 #define kXR_isManager 0x00000002
62 #define kXR_isServer 0x00000001
63 #define kXR_attrMeta 0x00000100
64 #define kXR_attrProxy 0x00000200
65 #define kXR_attrSuper 0x00000400
66 
67 #define kXR_maxReqRetry 10
68 
69 //
70 // Kind of error inside a XTNetFile's routine (temporary)
71 //
73  kGENERICERR = 0, // Generic error
74  kREAD, // Error while reading from stream
75  kWRITE, // Error while writing to stream
76  kREDIRCONNECT, // Error redirecting to a given host
77  kOK, // Everything seems ok
78  kNOMORESTREAMS // No more available stream IDs for
79  // async processing
80 };
81 
82 //______________________________________________
83 // PROTOCOL DEFINITION: CLIENT'S REQUESTS TYPES
84 //______________________________________________
85 //
87  kXR_auth = 3000,
88  kXR_query, // 3001
89  kXR_chmod, // 3002
90  kXR_close, // 3003
91  kXR_dirlist, // 3004
92  kXR_getfile, // 3005
93  kXR_protocol,// 3006
94  kXR_login, // 3007
95  kXR_mkdir, // 3008
96  kXR_mv, // 3009
97  kXR_open, // 3010
98  kXR_ping, // 3011
99  kXR_putfile, // 3012
100  kXR_read, // 3013
101  kXR_rm, // 3014
102  kXR_rmdir, // 3015
103  kXR_sync, // 3016
104  kXR_stat, // 3017
105  kXR_set, // 3018
106  kXR_write, // 3019
107  kXR_admin, // 3020
108  kXR_prepare, // 3021
109  kXR_statx, // 3022
110  kXR_endsess, // 3023
111  kXR_bind, // 3024
112  kXR_readv, // 3025
113  kXR_verifyw, // 3026
114  kXR_locate, // 3027
115  kXR_truncate // 3028
116 };
117 
118 // OPEN MODE FOR A REMOTE FILE
120  kXR_ur = 0x100,
121  kXR_uw = 0x080,
122  kXR_ux = 0x040,
123  kXR_gr = 0x020,
124  kXR_gw = 0x010,
125  kXR_gx = 0x008,
126  kXR_or = 0x004,
127  kXR_ow = 0x002,
128  kXR_ox = 0x001
129 };
130 
134 };
135 
136 // this is a bitmask
145 };
146 
147 // this is a bitmask
152 };
153 
154 // this is a single number that goes into capver as the version
155 //
157  kXR_ver000 = 0, // Old clients predating history
158  kXR_ver001 = 1, // Generally implemented 2005 protocol
159  kXR_ver002 = 2, // Same as 1 but adds asyncresp recognition
160  kXR_ver003 = 3 // The 2011-2012 rewritten client
161 };
162 
165 };
166 
168  kXR_file = 0,
169  kXR_xset = 1,
177 };
178 
182 };
183 
185  kXR_compress = 1, // also locate (return unique hosts)
188  kXR_new = 8,
191  kXR_async = 64,
192  kXR_refresh = 128, // also locate
193  kXR_mkpath = 256,
194  kXR_prefname = 256, // only locate
196  kXR_retstat = 1024,
197  kXR_replica = 2048,
198  kXR_posc = 4096,
199  kXR_nowait = 8192, // also locate
200  kXR_seqio =16384,
202 };
203 
216 };
217 
221 };
222 
226 };
227 
228 // Andy's request for async/unsolicited
234  kXR_wmode = 16,
235  kXR_coloc = 32,
237 };
238 
239 //_______________________________________________
240 // PROTOCOL DEFINITION: SERVER'S RESPONSES TYPES
241 //_______________________________________________
242 //
244  kXR_ok = 0,
245  kXR_oksofar = 4000,
253 };
254 
255 //_______________________________________________
256 // PROTOCOL DEFINITION: SERVER"S ATTN CODES
257 //_______________________________________________
258 
260  kXR_asyncab = 5000,
269 };
270 
271 //_______________________________________________
272 // PROTOCOL DEFINITION: SERVER'S ERROR CODES
273 //_______________________________________________
274 //
299 };
300 
301 
302 //______________________________________________
303 // PROTOCOL DEFINITION: CLIENT'S REQUESTS STRUCTS
304 //______________________________________________
305 //
306 // We need to pack structures sent all over the net!
307 // __attribute__((packed)) assures no padding bytes.
308 //
309 // Nice bodies of the headers for the client requests.
310 // Note that the protocol specifies these values to be in network
311 // byte order when sent
312 //
313 // G.Ganis: use of flat structures to avoid packing options
314 
320 };
327 };
333 };
340 };
348 };
355 };
361 };
369 };
376 };
383  kXR_char ability; // See XLoginAbility enum flags
384  kXR_char capver[1]; // See XLoginCapVer enum flags
387 };
395 };
401 };
409 };
410 
416 };
420  kXR_int32 clientpv; // 2.9.7 or higher
423 };
429  kXR_unt16 port; // 2.9.9 or higher
432 };
440 };
449 };
457 };
464 };
470 };
476 };
482 };
490 };
497 };
505 };
514 };
521  kXR_char vertype; // One of XVerifyType
523  kXR_int32 dlen; // Includes crc length
524 };
525 
531 };
532 
533 typedef union {
534  struct ClientRequestHdr header;
535  struct ClientAdminRequest admin;
536  struct ClientAuthRequest auth;
537  struct ClientBindRequest bind;
538  struct ClientChmodRequest chmod;
539  struct ClientCloseRequest close;
540  struct ClientDirlistRequest dirlist;
541  struct ClientEndsessRequest endsess;
542  struct ClientGetfileRequest getfile;
543  struct ClientLocateRequest locate;
544  struct ClientLoginRequest login;
545  struct ClientMkdirRequest mkdir;
546  struct ClientMvRequest mv;
547  struct ClientOpenRequest open;
548  struct ClientPingRequest ping;
549  struct ClientPrepareRequest prepare;
550  struct ClientProtocolRequest protocol;
551  struct ClientPutfileRequest putfile;
552  struct ClientQueryRequest query;
553  struct ClientReadRequest read;
554  struct ClientReadVRequest readv;
555  struct ClientRmRequest rm;
556  struct ClientRmdirRequest rmdir;
557  struct ClientSetRequest set;
558  struct ClientStatRequest stat;
559  struct ClientSyncRequest sync;
560  struct ClientTruncateRequest truncate;
561  struct ClientWriteRequest write;
562 } ClientRequest;
563 
568 };
569 
570 struct read_args {
573  // his struct is followed by an array of readahead_list
574 };
575 
576 //_____________________________________________________________________
577 // PROTOCOL DEFINITION: SERVER'S RESPONSE
578 //_____________________________________________________________________
579 //
580 
581 // Nice header for the server response.
582 // Note that the protocol specifies these values to be in network
583 // byte order when sent
584 //
585 // G.Ganis: The following structures never need padding bytes:
586 // no need of packing options
587 
592 };
593 
594 // Body for the kXR_bind response... useful
597 };
598 
599 // Body for the kXR_open response... useful
602  kXR_int32 cpsize; // cpsize & cptype returned if kXR_compress *or*
603  kXR_char cptype[4]; // kXR_retstat is specified
604 }; // info will follow if kXR_retstat is specified
605 
606 // Body for the kXR_protocol response... useful
610 };
611 
614  kXR_char sec[4096]; // Should be sufficient for every use
615 };
616 
619  char host[4096]; // Should be sufficient for every use
620 };
621 
624  char errmsg[4096]; // Should be sufficient for every use
625 };
626 
629  char infomsg[4096]; // Should be sufficient for every use
630 };
631 
634 };
635 
638  char parms[4096]; // Should be sufficient for every use
639 };
640 
644  char host[4092];
645 };
646 
649  char reserved[4];
651  char respdata[4096];
652 };
653 
657 };
658 
663 };
664 
666  char data[4096];
667 };
668 
670  char data[4096];
671 };
672 
674 {
676  union
677  {
688  } body;
689 };
690 
692 
693 // The fields to be sent as initial handshake
700 };
701 
702 // The body received after the first handshake's header
707 };
708 
709 
710 
712 
713 struct ALIGN_CHECK {char chkszreq[25-sizeof(ClientRequest)];
714  char chkszrsp[ 9-sizeof(ServerResponseHeader)];
715 };
716 
717 /******************************************************************************/
718 /* X P r o t o c o l U t i l i t i e s */
719 /******************************************************************************/
720 
721 #include <errno.h>
722 #if defined(WIN32)
723 #if !defined(ENOTBLK)
724 # define ENOTBLK 15
725 #endif
726 #if !defined(ETXTBSY)
727 #define ETXTBSY 26
728 #endif
729 #if !defined(ENOBUFS)
730 #define ENOBUFS 105
731 #endif
732 #if !defined(ENETUNREACH)
733 #define ENETUNREACH 114
734 #endif
735 #endif
736 
738 {
739 public:
740 
741 // mapError() is the occicial mapping from errno to xrootd protocol error.
742 //
743 static int mapError(int rc)
744  {if (rc < 0) rc = -rc;
745  switch(rc)
746  {case ENOENT: return kXR_NotFound;
747  case EPERM: return kXR_NotAuthorized;
748  case EACCES: return kXR_NotAuthorized;
749  case EIO: return kXR_IOError;
750  case ENOMEM: return kXR_NoMemory;
751  case ENOBUFS: return kXR_NoMemory;
752  case ENOSPC: return kXR_NoSpace;
753  case ENAMETOOLONG: return kXR_ArgTooLong;
754  case ENETUNREACH: return kXR_noserver;
755  case ENOTBLK: return kXR_NotFile;
756  case EISDIR: return kXR_isDirectory;
757  case EEXIST: return kXR_InvalidRequest;
758  case ETXTBSY: return kXR_inProgress;
759  case ENODEV: return kXR_FSError;
760  case EFAULT: return kXR_ServerError;
761  case EDQUOT: return kXR_overQuota;
762  default: return kXR_FSError;
763  }
764  }
765 
766 static int toErrno( int xerr )
767 {
768  switch(xerr)
769  {case kXR_ArgInvalid: return EINVAL;
770  case kXR_ArgMissing: return EINVAL;
771  case kXR_ArgTooLong: return ENAMETOOLONG;
772  case kXR_FileLocked: return EDEADLK;
773  case kXR_FileNotOpen: return EBADF;
774  case kXR_FSError: return EIO;
775  case kXR_InvalidRequest:return EEXIST;
776  case kXR_IOError: return EIO;
777  case kXR_NoMemory: return ENOMEM;
778  case kXR_NoSpace: return ENOSPC;
779  case kXR_NotAuthorized: return EACCES;
780  case kXR_NotFound: return ENOENT;
781  case kXR_ServerError: return ENOMSG;
782  case kXR_Unsupported: return ENOSYS;
783  case kXR_noserver: return EHOSTUNREACH;
784  case kXR_NotFile: return ENOTBLK;
785  case kXR_isDirectory: return EISDIR;
786  case kXR_Cancelled: return ECANCELED;
787  case kXR_ChkLenErr: return EDOM;
788  case kXR_ChkSumErr: return EDOM;
789  case kXR_inProgress: return EINPROGRESS;
790  case kXR_overQuota: return EDQUOT;
791  default: return ENOMSG;
792  }
793 }
794 
795 };
796 
797 
798 #endif
Definition: XProtocol.hh:647
unsigned char kXR_char
Definition: XPtypes.hh:38
kXR_int64 offset
Definition: XProtocol.hh:510
Definition: XProtocol.hh:141
Definition: XProtocol.hh:607
kXR_int32 dlen
Definition: XProtocol.hh:513
Definition: XProtocol.hh:193
Definition: XProtocol.hh:173
Definition: XProtocol.hh:151
kXR_unt16 options
Definition: XProtocol.hh:406
kXR_char role[1]
Definition: XProtocol.hh:385
Definition: XProtocol.hh:249
Definition: XProtocol.hh:210
Definition: XProtocol.hh:92
kXR_unt16 requestid
Definition: XProtocol.hh:358
kXR_char reserved[8]
Definition: XProtocol.hh:437
Definition: XProtocol.hh:107
kXR_char streamid[2]
Definition: XProtocol.hh:589
kXR_int64 offset
Definition: XProtocol.hh:567
kXR_char reserved[12]
Definition: XProtocol.hh:430
Definition: XProtocol.hh:235
Definition: XProtocol.hh:665
kXR_char streamid[2]
Definition: XProtocol.hh:350
kXR_int32 dlen
Definition: XProtocol.hh:463
kXR_int32 port
Definition: XProtocol.hh:618
kXR_char sessid[16]
Definition: XProtocol.hh:359
Definition: XProtocol.hh:233
Definition: XProtocol.hh:190
kXR_char streamid[2]
Definition: XProtocol.hh:434
kXR_char fhandle[4]
Definition: XProtocol.hh:601
kXR_char reserved[7]
Definition: XProtocol.hh:572
XMkdirOptions
Definition: XProtocol.hh:131
kXR_char streamid[2]
Definition: XProtocol.hh:418
kXR_char ability
Definition: XProtocol.hh:383
kXR_int32 wsec
Definition: XProtocol.hh:661
kXR_unt16 requestid
Definition: XProtocol.hh:452
kXR_unt16 requestid
Definition: XProtocol.hh:419
Definition: XProtocol.hh:127
kXR_int32 pid
Definition: XProtocol.hh:380
kXR_char username[8]
Definition: XProtocol.hh:381
Definition: XProtocol.hh:277
Definition: XProtocol.hh:411
Definition: XProtocol.hh:268
union ServerResponse::@20 body
kXR_int32 dlen
Definition: XProtocol.hh:422
kXR_char options[1]
Definition: XProtocol.hh:391
Definition: XProtocol.hh:75
kXR_int32 wsec
Definition: XProtocol.hh:656
Definition: XProtocol.hh:149
Definition: XProtocol.hh:108
Definition: XProtocol.hh:125
ServerResponseBody_Waitresp waitresp
Definition: XProtocol.hh:681
char host[4092]
Definition: XProtocol.hh:644
kXR_char streamid[2]
Definition: XProtocol.hh:466
Definition: XProtocol.hh:175
ServerResponseBody_Wait wait
Definition: XProtocol.hh:680
Definition: XProtocol.hh:244
kXR_int32 dlen
Definition: XProtocol.hh:339
char reserved[4]
Definition: XProtocol.hh:649
char infomsg[4096]
Definition: XProtocol.hh:629
Definition: XProtocol.hh:341
Definition: XProtocol.hh:294
Definition: XProtocol.hh:564
Definition: XProtocol.hh:189
Definition: XProtocol.hh:138
Definition: XProtocol.hh:176
ServerResponseBody_Bind bind
Definition: XProtocol.hh:687
kXR_char streamid[2]
Definition: XProtocol.hh:507
Definition: XProtocol.hh:402
Definition: XProtocol.hh:290
kXR_char reserved[16]
Definition: XProtocol.hh:414
kXR_char streamid[2]
Definition: XProtocol.hh:322
Definition: XProtocol.hh:231
Definition: XProtocol.hh:370
kXR_char fhandle[4]
Definition: XProtocol.hh:509
Definition: XProtocol.hh:276
Definition: XProtocol.hh:279
kXR_int32 dlen
Definition: XProtocol.hh:469
kXR_unt16 requestid
Definition: XProtocol.hh:343
Definition: XProtocol.hh:280
kXR_char reserved[16]
Definition: XProtocol.hh:468
XOpenRequestMode
Definition: XProtocol.hh:119
kXR_char fhandle[4]
Definition: XProtocol.hh:494
unsigned short kXR_unt16
Definition: XPtypes.hh:40
kXR_int32 msec
Definition: XProtocol.hh:662
kXR_int32 third
Definition: XProtocol.hh:697
kXR_char credtype[4]
Definition: XProtocol.hh:325
kXR_int32 msgval
Definition: XProtocol.hh:706
char data[4096]
Definition: XProtocol.hh:666
Definition: XProtocol.hh:211
Definition: XProtocol.hh:284
kXR_char prty
Definition: XProtocol.hh:428
Definition: XProtocol.hh:297
kXR_char pathid
Definition: XProtocol.hh:462
Definition: XProtocol.hh:266
Definition: XProtocol.hh:126
Definition: XProtocol.hh:78
Definition: XProtocol.hh:96
kXR_char sessid[16]
Definition: XProtocol.hh:331
Definition: XProtocol.hh:105
kXR_unt16 requestid
Definition: XProtocol.hh:351
Definition: XProtocol.hh:97
kXR_int32 dlen
Definition: XProtocol.hh:354
kXR_int64 fsize
Definition: XProtocol.hh:345
XLogonType
Definition: XProtocol.hh:223
Definition: XProtocol.hh:515
Definition: XProtocol.hh:106
kXR_unt16 requestid
Definition: XProtocol.hh:485
Definition: XProtocol.hh:417
kXR_unt16 requestid
Definition: XProtocol.hh:379
kXR_int64 offset
Definition: XProtocol.hh:519
Definition: XProtocol.hh:172
Definition: XProtocol.hh:73
kXR_char streamid[2]
Definition: XProtocol.hh:478
Definition: XProtocol.hh:654
kXR_int32 rlen
Definition: XProtocol.hh:566
Definition: XProtocol.hh:132
kXR_int32 dlen
Definition: XProtocol.hh:439
Definition: XProtocol.hh:212
Definition: XProtocol.hh:471
Definition: XProtocol.hh:157
Definition: XProtocol.hh:150
Definition: XProtocol.hh:328
kXR_unt16 requestid
Definition: XProtocol.hh:528
kXR_unt16 requestid
Definition: XProtocol.hh:398
Definition: XProtocol.hh:424
Definition: XProtocol.hh:669
kXR_unt16 status
Definition: XProtocol.hh:590
Definition: XProtocol.hh:234
static int mapError(int rc)
Definition: XProtocol.hh:743
kXR_char reserved[3]
Definition: XProtocol.hh:512
kXR_unt16 requestid
Definition: XProtocol.hh:372
Definition: XProtocol.hh:164
kXR_unt16 infotype
Definition: XProtocol.hh:444
kXR_char capver[1]
Definition: XProtocol.hh:384
kXR_int32 port
Definition: XProtocol.hh:643
XResponseType
Definition: XProtocol.hh:243
kXR_char substreamid
Definition: XProtocol.hh:596
kXR_char reserved[12]
Definition: XProtocol.hh:421
kXR_char streamid[2]
Definition: XProtocol.hh:316
Definition: XProtocol.hh:205
kXR_char reserved[14]
Definition: XProtocol.hh:337
kXR_char streamid[2]
Definition: XProtocol.hh:342
kXR_char reserved[16]
Definition: XProtocol.hh:474
XVerifyType
Definition: XProtocol.hh:218
XQueryType
Definition: XProtocol.hh:204
Definition: XProtocol.hh:109
kXR_int32 rlen
Definition: XProtocol.hh:455
Definition: XProtocol.hh:123
Definition: XProtocol.hh:641
kXR_unt16 requestid
Definition: XProtocol.hh:493
kXR_int32 dlen
Definition: XProtocol.hh:456
Definition: XProtocol.hh:87
Definition: XProtocol.hh:88
ServerResponseBody_Login login
Definition: XProtocol.hh:685
Definition: XProtocol.hh:600
kXR_unt16 requestid
Definition: XProtocol.hh:404
kXR_char streamid[2]
Definition: XProtocol.hh:329
kXR_unt16 requestid
Definition: XProtocol.hh:500
kXR_char reserved1[2]
Definition: XProtocol.hh:445
Definition: XProtocol.hh:252
kXR_int32 dlen
Definition: XProtocol.hh:481
kXR_int32 dlen
Definition: XProtocol.hh:475
kXR_char reserved2[8]
Definition: XProtocol.hh:447
Definition: XProtocol.hh:76
kXR_unt16 requestid
Definition: XProtocol.hh:473
Definition: XProtocol.hh:159
Definition: XProtocol.hh:174
ServerResponseBody_Error error
Definition: XProtocol.hh:678
Definition: XProtocol.hh:321
kXR_int32 fourth
Definition: XProtocol.hh:698
kXR_int32 dlen
Definition: XProtocol.hh:431
Definition: XProtocol.hh:199
Definition: XProtocol.hh:170
Definition: XProtocol.hh:102
XLoginVersion
Definition: XProtocol.hh:156
Definition: XProtocol.hh:293
Definition: XProtocol.hh:98
kXR_char cptype[4]
Definition: XProtocol.hh:603
Definition: XProtocol.hh:506
char host[4096]
Definition: XProtocol.hh:619
Definition: XProtocol.hh:570
kXR_char reserved[16]
Definition: XProtocol.hh:399
kXR_char reserved[4]
Definition: XProtocol.hh:346
Definition: XProtocol.hh:441
kXR_int32 errnum
Definition: XProtocol.hh:623
kXR_char reserved[2]
Definition: XProtocol.hh:522
Definition: XProtocol.hh:90
kXR_int32 dlen
Definition: XProtocol.hh:448
kXR_char reserved[4]
Definition: XProtocol.hh:503
Definition: XProtocol.hh:160
kXR_char options
Definition: XProtocol.hh:427
kXR_int32 options
Definition: XProtocol.hh:365
kXR_char reserved[13]
Definition: XProtocol.hh:392
Definition: XProtocol.hh:612
Definition: XProtocol.hh:169
Definition: XProtocol.hh:122
char chkszreq[25-sizeof(ClientRequest)]
Definition: XProtocol.hh:713
Definition: XProtocol.hh:433
kXR_char streamid[2]
Definition: XProtocol.hh:499
Definition: XProtocol.hh:94
Definition: XProtocol.hh:281
Definition: XProtocol.hh:99
kXR_char streamid[2]
Definition: XProtocol.hh:397
kXR_char streamid[2]
Definition: XProtocol.hh:357
Definition: XProtocol.hh:124
kXR_int32 second
Definition: XProtocol.hh:696
Definition: XProtocol.hh:248
kXR_char streamid[2]
Definition: XProtocol.hh:389
kXR_int32 actnum
Definition: XProtocol.hh:642
kXR_char reserved[16]
Definition: XProtocol.hh:480
Definition: XProtocol.hh:181
kXR_int32 dlen
Definition: XProtocol.hh:523
Definition: XProtocol.hh:246
kXR_char streamid[2]
Definition: XProtocol.hh:335
char data[4096]
Definition: XProtocol.hh:670
kXR_char pathid
Definition: XProtocol.hh:571
Definition: XProtocol.hh:113
Definition: XProtocol.hh:180
kXR_unt16 requestid
Definition: XProtocol.hh:479
Definition: XProtocol.hh:225
kXR_int32 msglen
Definition: XProtocol.hh:704
Definition: XProtocol.hh:74
Definition: XProtocol.hh:213
kXR_unt16 requestid
Definition: XProtocol.hh:460
Definition: XProtocol.hh:139
char respdata[4096]
Definition: XProtocol.hh:651
kXR_char fhandle[4]
Definition: XProtocol.hh:453
kXR_char reserved[12]
Definition: XProtocol.hh:324
kXR_int64 offset
Definition: XProtocol.hh:454
Definition: XProtocol.hh:200
Definition: XProtocol.hh:491
Definition: XProtocol.hh:215
kXR_unt16 requestid
Definition: XProtocol.hh:508
Definition: XProtocol.hh:737
kXR_int32 options
Definition: XProtocol.hh:436
Definition: XProtocol.hh:120
kXR_int32 cpsize
Definition: XProtocol.hh:602
XErrorCode
Definition: XProtocol.hh:275
Definition: XProtocol.hh:713
Definition: XProtocol.hh:349
kXR_char streamid[2]
Definition: XProtocol.hh:472
kXR_int32 dlen
Definition: XProtocol.hh:530
Definition: XProtocol.hh:168
Definition: XProtocol.hh:595
kXR_unt16 requestid
Definition: XProtocol.hh:336
Definition: XProtocol.hh:250
XLoginCapVer
Definition: XProtocol.hh:148
Definition: XProtocol.hh:283
ServerResponseBody_Protocol protocol
Definition: XProtocol.hh:684
Definition: XProtocol.hh:158
kXR_char streamid[2]
Definition: XProtocol.hh:484
kXR_int32 buffsz
Definition: XProtocol.hh:367
Definition: XProtocol.hh:89
Definition: XProtocol.hh:477
Definition: XProtocol.hh:140
kXR_unt16 requestid
Definition: XProtocol.hh:413
kXR_unt16 mode
Definition: XProtocol.hh:393
kXR_int32 pval
Definition: XProtocol.hh:608
Definition: XProtocol.hh:214
kXR_int32 dlen
Definition: XProtocol.hh:415
kXR_char streamid[2]
Definition: XProtocol.hh:516
void ServerResponseHeader2NetFmt(struct ServerResponseHeader *srh)
Definition: XProtocol.hh:247
Definition: XProtocol.hh:377
Definition: XProtocol.hh:396
ServerResponseBody_Redirect redirect
Definition: XProtocol.hh:682
Definition: XProtocol.hh:209
Definition: XProtocol.hh:114
Definition: XProtocol.hh:101
kXR_int32 dlen
Definition: XProtocol.hh:386
Definition: XProtocol.hh:267
kXR_int32 dlen
Definition: XProtocol.hh:375
Definition: XProtocol.hh:77
kXR_char body[16]
Definition: XProtocol.hh:529
Definition: XProtocol.hh:95
Definition: XProtocol.hh:315
Definition: XProtocol.hh:334
Definition: XProtocol.hh:103
kXR_char streamid[2]
Definition: XProtocol.hh:492
Definition: XProtocol.hh:673
kXR_int64 offset
Definition: XProtocol.hh:502
kXR_char reserved[12]
Definition: XProtocol.hh:407
kXR_int32 flags
Definition: XProtocol.hh:609
Definition: XProtocol.hh:632
kXR_unt16 requestid
Definition: XProtocol.hh:443
kXR_char streamid[2]
Definition: XProtocol.hh:459
Definition: XProtocol.hh:526
Definition: XProtocol.hh:588
Definition: XProtocol.hh:245
Definition: XProtocol.hh:188
Definition: XProtocol.hh:121
kXR_unt16 requestid
Definition: XProtocol.hh:390
Definition: XProtocol.hh:142
Definition: XProtocol.hh:128
kXR_int32 ServerResponseType
Definition: XProtocol.hh:711
kXR_char options
Definition: XProtocol.hh:486
kXR_char fhandle[4]
Definition: XProtocol.hh:565
Definition: XProtocol.hh:191
Definition: XProtocol.hh:291
Definition: XProtocol.hh:261
Definition: XProtocol.hh:278
kXR_int32 fifth
Definition: XProtocol.hh:699
XLoginAbility
Definition: XProtocol.hh:137
char parms[4096]
Definition: XProtocol.hh:638
kXR_int32 dlen
Definition: XProtocol.hh:408
kXR_unt16 requestid
Definition: XProtocol.hh:323
Definition: XProtocol.hh:144
kXR_int32 dlen
Definition: XProtocol.hh:504
Definition: XProtocol.hh:186
Definition: XProtocol.hh:133
Definition: XProtocol.hh:196
Definition: XProtocol.hh:298
ServerResponseHeader resphdr
Definition: XProtocol.hh:650
Definition: XProtocol.hh:465
kXR_int32 buffsz
Definition: XProtocol.hh:438
Definition: XProtocol.hh:262
XRequestTypes
Definition: XProtocol.hh:86
Definition: XProtocol.hh:206
kXR_char streamid[2]
Definition: XProtocol.hh:412
kXR_int32 first
Definition: XProtocol.hh:695
kXR_char reserved[15]
Definition: XProtocol.hh:352
kXR_int32 actnum
Definition: XProtocol.hh:660
kXR_int32 dlen
Definition: XProtocol.hh:400
Definition: XProtocol.hh:287
kXR_char streamid[2]
Definition: XProtocol.hh:451
kXR_int32 dlen
Definition: XProtocol.hh:591
Definition: XProtocol.hh:265
Definition: XProtocol.hh:288
Definition: XProtocol.hh:450
kXR_char streamid[2]
Definition: XProtocol.hh:442
Definition: XProtocol.hh:220
Definition: XProtocol.hh:356
kXR_char sec[4096]
Definition: XProtocol.hh:614
kXR_int32 seconds
Definition: XProtocol.hh:633
Definition: XProtocol.hh:232
Definition: XProtocol.hh:104
Definition: XProtocol.hh:362
XPrepRequestOption
Definition: XProtocol.hh:229
kXR_char streamid[2]
Definition: XProtocol.hh:425
Definition: XProtocol.hh:230
Definition: XProtocol.hh:282
kXR_char streamid[2]
Definition: XProtocol.hh:378
Definition: XProtocol.hh:185
Definition: XProtocol.hh:260
kXR_char streamid[2]
Definition: XProtocol.hh:527
kXR_int32 dlen
Definition: XProtocol.hh:368
Definition: XProtocol.hh:236
Definition: XProtocol.hh:627
Definition: XProtocol.hh:197
XActionCode
Definition: XProtocol.hh:259
kXR_char streamid[2]
Definition: XProtocol.hh:403
kXR_unt16 requestid
Definition: XProtocol.hh:517
kXR_int32 dlen
Definition: XProtocol.hh:496
Definition: XProtocol.hh:458
Definition: XProtocol.hh:659
kXR_char streamid[2]
Definition: XProtocol.hh:371
Definition: XProtocol.hh:143
kXR_char reserved[14]
Definition: XProtocol.hh:374
Definition: XProtocol.hh:93
Definition: XProtocol.hh:91
Definition: XProtocol.hh:251
XOpenRequestOption
Definition: XProtocol.hh:184
Definition: XProtocol.hh:263
ServerResponseBody_Attn attn
Definition: XProtocol.hh:683
kXR_char vertype
Definition: XProtocol.hh:521
Definition: XProtocol.hh:198
kXR_char fhandle[4]
Definition: XProtocol.hh:344
XDirlistRequestOption
Definition: XProtocol.hh:179
int kXR_int32
Definition: XPtypes.hh:62
Definition: XProtocol.hh:192
Definition: XProtocol.hh:694
ServerResponseHeader hdr
Definition: XProtocol.hh:675
Definition: XProtocol.hh:208
kXR_int32 actnum
Definition: XProtocol.hh:648
kXR_char reserved[11]
Definition: XProtocol.hh:487
kXR_unt16 requestid
Definition: XProtocol.hh:330
kXR_int32 dlen
Definition: XProtocol.hh:332
kXR_unt16 mode
Definition: XProtocol.hh:405
kXR_int32 dlen
Definition: XProtocol.hh:489
Definition: XProtocol.hh:201
Definition: XProtocol.hh:289
kXR_int32 protover
Definition: XProtocol.hh:705
kXR_int32 dlen
Definition: XProtocol.hh:360
Definition: XProtocol.hh:533
kXR_char reserved[12]
Definition: XProtocol.hh:495
Definition: XProtocol.hh:483
Definition: XProtocol.hh:703
Definition: XProtocol.hh:285
Definition: XProtocol.hh:286
Definition: XProtocol.hh:194
kXR_char streamid[2]
Definition: XProtocol.hh:363
Definition: XProtocol.hh:622
ServerResponseBody_Buffer buffer
Definition: XProtocol.hh:686
char errmsg[4096]
Definition: XProtocol.hh:624
kXR_char options[1]
Definition: XProtocol.hh:353
kXR_unt16 requestid
Definition: XProtocol.hh:364
kXR_unt16 port
Definition: XProtocol.hh:429
kXR_char pathid
Definition: XProtocol.hh:511
kXR_unt16 requestid
Definition: XProtocol.hh:435
Definition: XProtocol.hh:295
XStatRespFlags
Definition: XProtocol.hh:167
kXR_char reserved[8]
Definition: XProtocol.hh:366
kXR_unt16 requestid
Definition: XProtocol.hh:426
kXR_int32 dlen
Definition: XProtocol.hh:394
kXR_char reserved
Definition: XProtocol.hh:382
Definition: XProtocol.hh:110
kXR_char reserved[15]
Definition: XProtocol.hh:461
kXR_char fhandle[4]
Definition: XProtocol.hh:518
Definition: XProtocol.hh:296
Definition: XProtocol.hh:195
Definition: XProtocol.hh:100
kXR_int32 seconds
Definition: XProtocol.hh:628
kXR_char pathid
Definition: XProtocol.hh:520
kXR_int32 actnum
Definition: XProtocol.hh:655
Definition: XProtocol.hh:292
long long kXR_int64
Definition: XPtypes.hh:71
Definition: XProtocol.hh:207
kXR_int32 actnum
Definition: XProtocol.hh:637
Definition: XProtocol.hh:187
XReqErrorType
Definition: XProtocol.hh:72
kXR_int32 dlen
Definition: XProtocol.hh:326
XStatRequestOption
Definition: XProtocol.hh:163
Definition: XProtocol.hh:112
Definition: XProtocol.hh:224
kXR_unt16 mode
Definition: XProtocol.hh:338
kXR_unt16 requestid
Definition: XProtocol.hh:317
kXR_int32 dlen
Definition: XProtocol.hh:347
Definition: XProtocol.hh:498
kXR_char sessid[16]
Definition: XProtocol.hh:613
kXR_char reserved[16]
Definition: XProtocol.hh:318
Definition: XProtocol.hh:636
static int toErrno(int xerr)
Definition: XProtocol.hh:766
char chkszrsp[9-sizeof(ServerResponseHeader)]
Definition: XProtocol.hh:714
kXR_char fhandle[4]
Definition: XProtocol.hh:488
Definition: XProtocol.hh:264
kXR_unt16 options
Definition: XProtocol.hh:373
Definition: XProtocol.hh:388
Definition: XProtocol.hh:111
ServerResponseBody_Authmore authmore
Definition: XProtocol.hh:679
Definition: XProtocol.hh:219
Definition: XProtocol.hh:171
kXR_char fhandle[4]
Definition: XProtocol.hh:501
Definition: XProtocol.hh:617
kXR_unt16 requestid
Definition: XProtocol.hh:467
kXR_char fhandle[4]
Definition: XProtocol.hh:446
kXR_int32 dlen
Definition: XProtocol.hh:319
Definition: XProtocol.hh:115
kXR_int32 clientpv
Definition: XProtocol.hh:420