33# include <sys/types.h>
35# include <netinet/in.h>
38#include "XrdSys/XrdSysPlatform.hh"
55 switch(str->header.requestid) {
58 str->login.pid =
htonl(str->login.pid);
65 str->proof.int1 =
htonl(str->proof.int1);
68 str->proof.sid =
htonl(str->proof.sid);
71 str->proof.sid =
htonl(str->proof.sid);
74 str->proof.sid =
htonl(str->proof.sid);
77 str->proof.sid =
htonl(str->proof.sid);
78 str->proof.int1 =
htonl(str->proof.int1);
79 str->proof.int2 =
htonl(str->proof.int2);
82 str->sendrcv.sid =
htonl(str->sendrcv.sid);
83 str->sendrcv.opt =
htonl(str->sendrcv.opt);
84 str->sendrcv.cid =
htonl(str->sendrcv.cid);
87 str->proof.sid =
htonl(str->proof.sid);
88 str->proof.int1 =
htonl(str->proof.int1);
89 str->proof.int2 =
htonl(str->proof.int2);
90 str->proof.int3 =
htonl(str->proof.int3);
93 str->readbuf.ofs =
htonll(str->readbuf.ofs);
94 str->readbuf.len =
htonl(str->readbuf.len);
95 str->readbuf.int1 =
htonl(str->readbuf.int1);
98 str->interrupt.sid =
htonl(str->interrupt.sid);
99 str->interrupt.type =
htonl(str->interrupt.type);
102 str->sendrcv.sid =
htonl(str->sendrcv.sid);
103 str->sendrcv.opt =
htonl(str->sendrcv.opt);
106 str->proof.sid =
htonl(str->proof.sid);
107 str->proof.int1 =
htonl(str->proof.int1);
108 str->proof.int2 =
htonl(str->proof.int2);
109 str->proof.int3 =
htonl(str->proof.int3);
112 str->sendrcv.sid =
htonl(str->sendrcv.sid);
115 str->proof.sid =
htonl(str->sendrcv.sid);
118 fprintf(
stderr,
"clientMarshall: unknown req ID: %d (0x%x)\n",
119 str->header.requestid, str->header.requestid);
124 str->header.requestid =
htons(str->header.requestid);
125 str->header.dlen =
htonl(str->header.dlen);
134 str->status =
ntohs(str->status);
135 str->dlen =
ntohl(str->dlen);
164 return (
char *)
"kXP_login";
166 return (
char *)
"kXP_auth";
168 return (
char *)
"kXP_create";
170 return (
char *)
"kXP_destroy";
172 return (
char *)
"kXP_attach";
174 return (
char *)
"kXP_detach";
176 return (
char *)
"kXP_sendmsg";
178 return (
char *)
"kXP_admin";
180 return (
char *)
"kXP_readbuf";
182 return (
char *)
"kXP_interrupt";
184 return (
char *)
"kXP_ping";
186 return (
char *)
"kXP_cleanup";
188 return (
char *)
"kXP_urgent";
190 return (
char *)
"kXP_touch";
192 return (
char *)
"kXP_ctrlc";
194 return (
char *)
"kXP_UNKNOWN";
204 return (
char *)
"kXP_ok";
207 return (
char *)
"kXP_oksofar";
210 return (
char *)
"kXP_attn";
213 return (
char *)
"kXP_authmore";
216 return (
char *)
"kXP_error";
219 return (
char *)
"kXP_wait";
222 return (
char *)
"kXP_UNKNOWN";
231 printf(
"\n\n================= DUMPING CLIENT REQUEST HEADER =================\n");
233 printf(
"%40s0x%.2x 0x%.2x\n",
"ClientHeader.streamid = ",
234 hdr->header.streamid[0],
hdr->header.streamid[1]);
236 printf(
"%40s%s (%d)\n",
"ClientHeader.requestid = ",
240 switch(
hdr->header.requestid) {
243 printf(
"%40s%d \n",
"ClientHeader.login.pid = ",
hdr->login.pid);
244 printf(
"%40s%s\n",
"ClientHeader.login_body.username = ",
hdr->login.username);
245 tmp = &
hdr->login.reserved[0];
246 printf(
"%40s0 repeated %d times\n",
"ClientHeader.login.reserved = ",
247 *((kXR_int16 *)tmp));
248 printf(
"%40s%d\n",
"ClientHeader.login.role = ", (kXR_int32)
hdr->login.role[0]);
251 printf(
"%40s0 repeated %d times\n",
"ClientHeader.auth.reserved = ",
252 (kXR_int32)
sizeof(
hdr->auth.reserved));
253 printf(
" ClientHeader.auth.credtype= 0x%.2x 0x%.2x 0x%.2x 0x%.2x \n",
254 hdr->auth.credtype[0],
hdr->auth.credtype[1],
255 hdr->auth.credtype[2],
hdr->auth.credtype[3]);
260 printf(
"%40s%d \n",
"ClientHeader.proof.sid = ",
hdr->proof.sid);
263 printf(
"%40s%d \n",
"ClientHeader.proof.sid = ",
hdr->proof.sid);
266 printf(
"%40s%d \n",
"ClientHeader.proof.sid = ",
hdr->proof.sid);
269 printf(
"%40s%d \n",
"ClientHeader.proof.sid = ",
hdr->proof.sid);
272 printf(
"%40s%d \n",
"ClientHeader.proof.sid = ",
hdr->proof.sid);
273 printf(
"%40s%d \n",
"ClientHeader.proof.int1 = ",
hdr->proof.int1);
274 printf(
"%40s%d \n",
"ClientHeader.proof.int2 = ",
hdr->proof.int2);
277 printf(
"%40s%d \n",
"ClientHeader.sendrcv.sid = ",
hdr->sendrcv.sid);
278 printf(
"%40s%d \n",
"ClientHeader.sendrcv.opt = ",
hdr->sendrcv.opt);
279 printf(
"%40s%d \n",
"ClientHeader.sendrcv.cid = ",
hdr->sendrcv.cid);
282 printf(
"%40s%d \n",
"ClientHeader.interrupt.sid = ",
hdr->interrupt.sid);
283 printf(
"%40s%d \n",
"ClientHeader.interrupt.type = ",
hdr->interrupt.type);
286 printf(
"%40s%d \n",
"ClientHeader.sendrcv.sid = ",
hdr->sendrcv.sid);
287 printf(
"%40s%d \n",
"ClientHeader.sendrcv.opt = ",
hdr->sendrcv.opt);
290 printf(
"%40s%d \n",
"ClientHeader.sendrcv.sid = ",
hdr->sendrcv.sid);
294 printf(
"%40s%d \n",
"ClientHeader.proof.sid = ",
hdr->proof.sid);
295 printf(
"%40s%d \n",
"ClientHeader.proof.int1 = ",
hdr->proof.int1);
296 printf(
"%40s%d \n",
"ClientHeader.proof.int2 = ",
hdr->proof.int2);
297 printf(
"%40s%d \n",
"ClientHeader.proof.int3 = ",
hdr->proof.int3);
300 printf(
"%40s%lld \n",
"ClientHeader.readbuf.ofs = ",
hdr->readbuf.ofs);
301 printf(
"%40s%d \n",
"ClientHeader.readbuf.len = ",
hdr->readbuf.len);
304 printf(
"Unknown request ID: %d ! \n",
hdr->header.requestid);
307 printf(
"%40s%d",
"ClientHeader.header.dlen = ",
hdr->header.dlen);
308 printf(
"\n=================== END CLIENT HEADER DUMPING ===================\n\n");
315 printf(
"\n\n======== DUMPING SERVER RESPONSE HEADER ========\n");
316 printf(
"%30s0x%.2x 0x%.2x\n",
"ServerHeader.streamid = ",
317 hdr->streamid[0],
hdr->streamid[1]);
318 switch(
hdr->status) {
320 printf(
"%30skXP_ok",
"ServerHeader.status = ");
323 printf(
"%30skXP_attn",
"ServerHeader.status = ");
326 printf(
"%30skXP_authmore",
"ServerHeader.status = ");
329 printf(
"%30skXP_error",
"ServerHeader.status = ");
332 printf(
"%30skXP_oksofar",
"ServerHeader.status = ");
335 printf(
"%30skXP_wait",
"ServerHeader.status = ");
339 printf(
"%30s%d",
"ServerHeader.dlen = ",
hdr->dlen);
340 printf(
"\n========== END DUMPING SERVER HEADER ===========\n\n");
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
void smartPrintClientHeader(XPClientRequest *hdr)
char * convertRespStatusToChar(kXR_int16 status)
void ServerResponseHeader2NetFmt(struct ServerResponseHeader *srh)
void ServerInitHandShake2HostFmt(struct ServerInitHandShake *srh)
void clientUnmarshall(struct ServerResponseHeader *str)
char * convertRequestIdToChar(kXR_int16 requestid)
This procedure convert the request code id (an integer defined in XProtocol.hh) in the ascii label (h...
void smartPrintServerHeader(struct ServerResponseHeader *hdr)
int clientMarshall(XPClientRequest *str)
This function applies the network byte order on those parts of the 16-bytes buffer,...