patch-nfs_prot_c 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740
  1. --- dsniff-2.4.orig/nfs_prot.c 1970-01-01 00:00:00.000000000 +0100
  2. +++ dsniff-2.4/nfs_prot.c 2009-12-11 12:53:10.000000000 +0100
  3. @@ -0,0 +1,737 @@
  4. +/*
  5. + * Please do not edit this file.
  6. + * It was generated using rpcgen.
  7. + */
  8. +
  9. +#include "nfs_prot.h"
  10. +#include "config.h"
  11. +
  12. +bool_t
  13. +xdr_nfsstat (XDR *xdrs, nfsstat *objp)
  14. +{
  15. + register int32_t *buf;
  16. +
  17. + if (!xdr_enum (xdrs, (enum_t *) objp))
  18. + return FALSE;
  19. + return TRUE;
  20. +}
  21. +
  22. +bool_t
  23. +xdr_ftype (XDR *xdrs, ftype *objp)
  24. +{
  25. + register int32_t *buf;
  26. +
  27. + if (!xdr_enum (xdrs, (enum_t *) objp))
  28. + return FALSE;
  29. + return TRUE;
  30. +}
  31. +
  32. +bool_t
  33. +xdr_nfs_fh (XDR *xdrs, nfs_fh *objp)
  34. +{
  35. + register int32_t *buf;
  36. +
  37. + int i;
  38. + if (!xdr_opaque (xdrs, objp->data, NFS_FHSIZE))
  39. + return FALSE;
  40. + return TRUE;
  41. +}
  42. +
  43. +bool_t
  44. +xdr_nfstime (XDR *xdrs, nfstime *objp)
  45. +{
  46. + register int32_t *buf;
  47. +
  48. + if (!xdr_u_int (xdrs, &objp->seconds))
  49. + return FALSE;
  50. + if (!xdr_u_int (xdrs, &objp->useconds))
  51. + return FALSE;
  52. + return TRUE;
  53. +}
  54. +
  55. +bool_t
  56. +xdr_fattr (XDR *xdrs, fattr *objp)
  57. +{
  58. + register int32_t *buf;
  59. +
  60. +
  61. + if (xdrs->x_op == XDR_ENCODE) {
  62. + if (!xdr_ftype (xdrs, &objp->type))
  63. + return FALSE;
  64. + buf = XDR_INLINE (xdrs, 10 * BYTES_PER_XDR_UNIT);
  65. + if (buf == NULL) {
  66. + if (!xdr_u_int (xdrs, &objp->mode))
  67. + return FALSE;
  68. + if (!xdr_u_int (xdrs, &objp->nlink))
  69. + return FALSE;
  70. + if (!xdr_u_int (xdrs, &objp->uid))
  71. + return FALSE;
  72. + if (!xdr_u_int (xdrs, &objp->gid))
  73. + return FALSE;
  74. + if (!xdr_u_int (xdrs, &objp->size))
  75. + return FALSE;
  76. + if (!xdr_u_int (xdrs, &objp->blocksize))
  77. + return FALSE;
  78. + if (!xdr_u_int (xdrs, &objp->rdev))
  79. + return FALSE;
  80. + if (!xdr_u_int (xdrs, &objp->blocks))
  81. + return FALSE;
  82. + if (!xdr_u_int (xdrs, &objp->fsid))
  83. + return FALSE;
  84. + if (!xdr_u_int (xdrs, &objp->fileid))
  85. + return FALSE;
  86. +
  87. + } else {
  88. + IXDR_PUT_U_LONG(buf, objp->mode);
  89. + IXDR_PUT_U_LONG(buf, objp->nlink);
  90. + IXDR_PUT_U_LONG(buf, objp->uid);
  91. + IXDR_PUT_U_LONG(buf, objp->gid);
  92. + IXDR_PUT_U_LONG(buf, objp->size);
  93. + IXDR_PUT_U_LONG(buf, objp->blocksize);
  94. + IXDR_PUT_U_LONG(buf, objp->rdev);
  95. + IXDR_PUT_U_LONG(buf, objp->blocks);
  96. + IXDR_PUT_U_LONG(buf, objp->fsid);
  97. + IXDR_PUT_U_LONG(buf, objp->fileid);
  98. + }
  99. + if (!xdr_nfstime (xdrs, &objp->atime))
  100. + return FALSE;
  101. + if (!xdr_nfstime (xdrs, &objp->mtime))
  102. + return FALSE;
  103. + if (!xdr_nfstime (xdrs, &objp->ctime))
  104. + return FALSE;
  105. + return TRUE;
  106. + } else if (xdrs->x_op == XDR_DECODE) {
  107. + if (!xdr_ftype (xdrs, &objp->type))
  108. + return FALSE;
  109. + buf = XDR_INLINE (xdrs, 10 * BYTES_PER_XDR_UNIT);
  110. + if (buf == NULL) {
  111. + if (!xdr_u_int (xdrs, &objp->mode))
  112. + return FALSE;
  113. + if (!xdr_u_int (xdrs, &objp->nlink))
  114. + return FALSE;
  115. + if (!xdr_u_int (xdrs, &objp->uid))
  116. + return FALSE;
  117. + if (!xdr_u_int (xdrs, &objp->gid))
  118. + return FALSE;
  119. + if (!xdr_u_int (xdrs, &objp->size))
  120. + return FALSE;
  121. + if (!xdr_u_int (xdrs, &objp->blocksize))
  122. + return FALSE;
  123. + if (!xdr_u_int (xdrs, &objp->rdev))
  124. + return FALSE;
  125. + if (!xdr_u_int (xdrs, &objp->blocks))
  126. + return FALSE;
  127. + if (!xdr_u_int (xdrs, &objp->fsid))
  128. + return FALSE;
  129. + if (!xdr_u_int (xdrs, &objp->fileid))
  130. + return FALSE;
  131. +
  132. + } else {
  133. + objp->mode = IXDR_GET_U_LONG(buf);
  134. + objp->nlink = IXDR_GET_U_LONG(buf);
  135. + objp->uid = IXDR_GET_U_LONG(buf);
  136. + objp->gid = IXDR_GET_U_LONG(buf);
  137. + objp->size = IXDR_GET_U_LONG(buf);
  138. + objp->blocksize = IXDR_GET_U_LONG(buf);
  139. + objp->rdev = IXDR_GET_U_LONG(buf);
  140. + objp->blocks = IXDR_GET_U_LONG(buf);
  141. + objp->fsid = IXDR_GET_U_LONG(buf);
  142. + objp->fileid = IXDR_GET_U_LONG(buf);
  143. + }
  144. + if (!xdr_nfstime (xdrs, &objp->atime))
  145. + return FALSE;
  146. + if (!xdr_nfstime (xdrs, &objp->mtime))
  147. + return FALSE;
  148. + if (!xdr_nfstime (xdrs, &objp->ctime))
  149. + return FALSE;
  150. + return TRUE;
  151. + }
  152. +
  153. + if (!xdr_ftype (xdrs, &objp->type))
  154. + return FALSE;
  155. + if (!xdr_u_int (xdrs, &objp->mode))
  156. + return FALSE;
  157. + if (!xdr_u_int (xdrs, &objp->nlink))
  158. + return FALSE;
  159. + if (!xdr_u_int (xdrs, &objp->uid))
  160. + return FALSE;
  161. + if (!xdr_u_int (xdrs, &objp->gid))
  162. + return FALSE;
  163. + if (!xdr_u_int (xdrs, &objp->size))
  164. + return FALSE;
  165. + if (!xdr_u_int (xdrs, &objp->blocksize))
  166. + return FALSE;
  167. + if (!xdr_u_int (xdrs, &objp->rdev))
  168. + return FALSE;
  169. + if (!xdr_u_int (xdrs, &objp->blocks))
  170. + return FALSE;
  171. + if (!xdr_u_int (xdrs, &objp->fsid))
  172. + return FALSE;
  173. + if (!xdr_u_int (xdrs, &objp->fileid))
  174. + return FALSE;
  175. + if (!xdr_nfstime (xdrs, &objp->atime))
  176. + return FALSE;
  177. + if (!xdr_nfstime (xdrs, &objp->mtime))
  178. + return FALSE;
  179. + if (!xdr_nfstime (xdrs, &objp->ctime))
  180. + return FALSE;
  181. + return TRUE;
  182. +}
  183. +
  184. +bool_t
  185. +xdr_filename (XDR *xdrs, filename *objp)
  186. +{
  187. + register int32_t *buf;
  188. +
  189. + if (!xdr_string (xdrs, objp, NFS_MAXNAMLEN))
  190. + return FALSE;
  191. + return TRUE;
  192. +}
  193. +
  194. +bool_t
  195. +xdr_nfspath (XDR *xdrs, nfspath *objp)
  196. +{
  197. + register int32_t *buf;
  198. +
  199. + if (!xdr_string (xdrs, objp, NFS_MAXPATHLEN))
  200. + return FALSE;
  201. + return TRUE;
  202. +}
  203. +
  204. +bool_t
  205. +xdr_diropargs (XDR *xdrs, diropargs *objp)
  206. +{
  207. + register int32_t *buf;
  208. +
  209. + if (!xdr_nfs_fh (xdrs, &objp->dir))
  210. + return FALSE;
  211. + if (!xdr_filename (xdrs, &objp->name))
  212. + return FALSE;
  213. + return TRUE;
  214. +}
  215. +
  216. +bool_t
  217. +xdr_diropokres (XDR *xdrs, diropokres *objp)
  218. +{
  219. + register int32_t *buf;
  220. +
  221. + if (!xdr_nfs_fh (xdrs, &objp->file))
  222. + return FALSE;
  223. + if (!xdr_fattr (xdrs, &objp->attributes))
  224. + return FALSE;
  225. + return TRUE;
  226. +}
  227. +
  228. +bool_t
  229. +xdr_diropres (XDR *xdrs, diropres *objp)
  230. +{
  231. + register int32_t *buf;
  232. +
  233. + if (!xdr_nfsstat (xdrs, &objp->status))
  234. + return FALSE;
  235. + switch (objp->status) {
  236. + case NFS_OK:
  237. + if (!xdr_diropokres (xdrs, &objp->diropres_u.diropres))
  238. + return FALSE;
  239. + break;
  240. + default:
  241. + break;
  242. + }
  243. + return TRUE;
  244. +}
  245. +
  246. +bool_t
  247. +xdr_readargs (XDR *xdrs, readargs *objp)
  248. +{
  249. + register int32_t *buf;
  250. +
  251. + if (!xdr_nfs_fh (xdrs, &objp->file))
  252. + return FALSE;
  253. + if (!xdr_u_int (xdrs, &objp->offset))
  254. + return FALSE;
  255. + if (!xdr_u_int (xdrs, &objp->count))
  256. + return FALSE;
  257. + if (!xdr_u_int (xdrs, &objp->totalcount))
  258. + return FALSE;
  259. + return TRUE;
  260. +}
  261. +
  262. +bool_t
  263. +xdr_readokres (XDR *xdrs, readokres *objp)
  264. +{
  265. + register int32_t *buf;
  266. +
  267. + if (!xdr_fattr (xdrs, &objp->attributes))
  268. + return FALSE;
  269. + if (!xdr_bytes (xdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, NFS_MAXDATA))
  270. + return FALSE;
  271. + return TRUE;
  272. +}
  273. +
  274. +bool_t
  275. +xdr_readres (XDR *xdrs, readres *objp)
  276. +{
  277. + register int32_t *buf;
  278. +
  279. + if (!xdr_nfsstat (xdrs, &objp->status))
  280. + return FALSE;
  281. + switch (objp->status) {
  282. + case NFS_OK:
  283. + if (!xdr_readokres (xdrs, &objp->readres_u.reply))
  284. + return FALSE;
  285. + break;
  286. + default:
  287. + break;
  288. + }
  289. + return TRUE;
  290. +}
  291. +
  292. +bool_t
  293. +xdr_uint64 (XDR *xdrs, uint64 *objp)
  294. +{
  295. + register int32_t *buf;
  296. +
  297. + if (!xdr_u_int64_t (xdrs, objp))
  298. + return FALSE;
  299. + return TRUE;
  300. +}
  301. +
  302. +bool_t
  303. +xdr_int64 (XDR *xdrs, int64 *objp)
  304. +{
  305. + register int32_t *buf;
  306. +
  307. + if (!xdr_int64_t (xdrs, objp))
  308. + return FALSE;
  309. + return TRUE;
  310. +}
  311. +
  312. +bool_t
  313. +xdr_uint32 (XDR *xdrs, uint32 *objp)
  314. +{
  315. + register int32_t *buf;
  316. +
  317. + if (!xdr_u_int (xdrs, objp))
  318. + return FALSE;
  319. + return TRUE;
  320. +}
  321. +
  322. +bool_t
  323. +xdr_int32 (XDR *xdrs, int32 *objp)
  324. +{
  325. + register int32_t *buf;
  326. +
  327. + if (!xdr_int (xdrs, objp))
  328. + return FALSE;
  329. + return TRUE;
  330. +}
  331. +
  332. +bool_t
  333. +xdr_filename3 (XDR *xdrs, filename3 *objp)
  334. +{
  335. + register int32_t *buf;
  336. +
  337. + if (!xdr_string (xdrs, objp, ~0))
  338. + return FALSE;
  339. + return TRUE;
  340. +}
  341. +
  342. +bool_t
  343. +xdr_nfspath3 (XDR *xdrs, nfspath3 *objp)
  344. +{
  345. + register int32_t *buf;
  346. +
  347. + if (!xdr_string (xdrs, objp, ~0))
  348. + return FALSE;
  349. + return TRUE;
  350. +}
  351. +
  352. +bool_t
  353. +xdr_fileid3 (XDR *xdrs, fileid3 *objp)
  354. +{
  355. + register int32_t *buf;
  356. +
  357. + if (!xdr_uint64 (xdrs, objp))
  358. + return FALSE;
  359. + return TRUE;
  360. +}
  361. +
  362. +bool_t
  363. +xdr_cookie3 (XDR *xdrs, cookie3 *objp)
  364. +{
  365. + register int32_t *buf;
  366. +
  367. + if (!xdr_uint64 (xdrs, objp))
  368. + return FALSE;
  369. + return TRUE;
  370. +}
  371. +
  372. +bool_t
  373. +xdr_cookieverf3 (XDR *xdrs, cookieverf3 objp)
  374. +{
  375. + register int32_t *buf;
  376. +
  377. + if (!xdr_opaque (xdrs, objp, NFS3_COOKIEVERFSIZE))
  378. + return FALSE;
  379. + return TRUE;
  380. +}
  381. +
  382. +bool_t
  383. +xdr_createverf3 (XDR *xdrs, createverf3 objp)
  384. +{
  385. + register int32_t *buf;
  386. +
  387. + if (!xdr_opaque (xdrs, objp, NFS3_CREATEVERFSIZE))
  388. + return FALSE;
  389. + return TRUE;
  390. +}
  391. +
  392. +bool_t
  393. +xdr_writeverf3 (XDR *xdrs, writeverf3 objp)
  394. +{
  395. + register int32_t *buf;
  396. +
  397. + if (!xdr_opaque (xdrs, objp, NFS3_WRITEVERFSIZE))
  398. + return FALSE;
  399. + return TRUE;
  400. +}
  401. +
  402. +bool_t
  403. +xdr_uid3 (XDR *xdrs, uid3 *objp)
  404. +{
  405. + register int32_t *buf;
  406. +
  407. + if (!xdr_uint32 (xdrs, objp))
  408. + return FALSE;
  409. + return TRUE;
  410. +}
  411. +
  412. +bool_t
  413. +xdr_gid3 (XDR *xdrs, gid3 *objp)
  414. +{
  415. + register int32_t *buf;
  416. +
  417. + if (!xdr_uint32 (xdrs, objp))
  418. + return FALSE;
  419. + return TRUE;
  420. +}
  421. +
  422. +bool_t
  423. +xdr_size3 (XDR *xdrs, size3 *objp)
  424. +{
  425. + register int32_t *buf;
  426. +
  427. + if (!xdr_uint64 (xdrs, objp))
  428. + return FALSE;
  429. + return TRUE;
  430. +}
  431. +
  432. +bool_t
  433. +xdr_offset3 (XDR *xdrs, offset3 *objp)
  434. +{
  435. + register int32_t *buf;
  436. +
  437. + if (!xdr_uint64 (xdrs, objp))
  438. + return FALSE;
  439. + return TRUE;
  440. +}
  441. +
  442. +bool_t
  443. +xdr_mode3 (XDR *xdrs, mode3 *objp)
  444. +{
  445. + register int32_t *buf;
  446. +
  447. + if (!xdr_uint32 (xdrs, objp))
  448. + return FALSE;
  449. + return TRUE;
  450. +}
  451. +
  452. +bool_t
  453. +xdr_count3 (XDR *xdrs, count3 *objp)
  454. +{
  455. + register int32_t *buf;
  456. +
  457. + if (!xdr_uint32 (xdrs, objp))
  458. + return FALSE;
  459. + return TRUE;
  460. +}
  461. +
  462. +bool_t
  463. +xdr_nfsstat3 (XDR *xdrs, nfsstat3 *objp)
  464. +{
  465. + register int32_t *buf;
  466. +
  467. + if (!xdr_enum (xdrs, (enum_t *) objp))
  468. + return FALSE;
  469. + return TRUE;
  470. +}
  471. +
  472. +bool_t
  473. +xdr_ftype3 (XDR *xdrs, ftype3 *objp)
  474. +{
  475. + register int32_t *buf;
  476. +
  477. + if (!xdr_enum (xdrs, (enum_t *) objp))
  478. + return FALSE;
  479. + return TRUE;
  480. +}
  481. +
  482. +bool_t
  483. +xdr_specdata3 (XDR *xdrs, specdata3 *objp)
  484. +{
  485. + register int32_t *buf;
  486. +
  487. + if (!xdr_uint32 (xdrs, &objp->specdata1))
  488. + return FALSE;
  489. + if (!xdr_uint32 (xdrs, &objp->specdata2))
  490. + return FALSE;
  491. + return TRUE;
  492. +}
  493. +
  494. +bool_t
  495. +xdr_nfs_fh3 (XDR *xdrs, nfs_fh3 *objp)
  496. +{
  497. + register int32_t *buf;
  498. +
  499. + if (!xdr_bytes (xdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, NFS3_FHSIZE))
  500. + return FALSE;
  501. + return TRUE;
  502. +}
  503. +
  504. +bool_t
  505. +xdr_nfstime3 (XDR *xdrs, nfstime3 *objp)
  506. +{
  507. + register int32_t *buf;
  508. +
  509. + if (!xdr_uint32 (xdrs, &objp->seconds))
  510. + return FALSE;
  511. + if (!xdr_uint32 (xdrs, &objp->nseconds))
  512. + return FALSE;
  513. + return TRUE;
  514. +}
  515. +
  516. +bool_t
  517. +xdr_fattr3 (XDR *xdrs, fattr3 *objp)
  518. +{
  519. + register int32_t *buf;
  520. +
  521. + if (!xdr_ftype3 (xdrs, &objp->type))
  522. + return FALSE;
  523. + if (!xdr_mode3 (xdrs, &objp->mode))
  524. + return FALSE;
  525. + if (!xdr_uint32 (xdrs, &objp->nlink))
  526. + return FALSE;
  527. + if (!xdr_uid3 (xdrs, &objp->uid))
  528. + return FALSE;
  529. + if (!xdr_gid3 (xdrs, &objp->gid))
  530. + return FALSE;
  531. + if (!xdr_size3 (xdrs, &objp->size))
  532. + return FALSE;
  533. + if (!xdr_size3 (xdrs, &objp->used))
  534. + return FALSE;
  535. + if (!xdr_specdata3 (xdrs, &objp->rdev))
  536. + return FALSE;
  537. + if (!xdr_uint64 (xdrs, &objp->fsid))
  538. + return FALSE;
  539. + if (!xdr_fileid3 (xdrs, &objp->fileid))
  540. + return FALSE;
  541. + if (!xdr_nfstime3 (xdrs, &objp->atime))
  542. + return FALSE;
  543. + if (!xdr_nfstime3 (xdrs, &objp->mtime))
  544. + return FALSE;
  545. + if (!xdr_nfstime3 (xdrs, &objp->ctime))
  546. + return FALSE;
  547. + return TRUE;
  548. +}
  549. +
  550. +bool_t
  551. +xdr_post_op_attr (XDR *xdrs, post_op_attr *objp)
  552. +{
  553. + register int32_t *buf;
  554. +
  555. + if (!xdr_bool (xdrs, &objp->attributes_follow))
  556. + return FALSE;
  557. + switch (objp->attributes_follow) {
  558. + case TRUE:
  559. + if (!xdr_fattr3 (xdrs, &objp->post_op_attr_u.attributes))
  560. + return FALSE;
  561. + break;
  562. + case FALSE:
  563. + break;
  564. + default:
  565. + return FALSE;
  566. + }
  567. + return TRUE;
  568. +}
  569. +
  570. +bool_t
  571. +xdr_wcc_attr (XDR *xdrs, wcc_attr *objp)
  572. +{
  573. + register int32_t *buf;
  574. +
  575. + if (!xdr_size3 (xdrs, &objp->size))
  576. + return FALSE;
  577. + if (!xdr_nfstime3 (xdrs, &objp->mtime))
  578. + return FALSE;
  579. + if (!xdr_nfstime3 (xdrs, &objp->ctime))
  580. + return FALSE;
  581. + return TRUE;
  582. +}
  583. +
  584. +bool_t
  585. +xdr_pre_op_attr (XDR *xdrs, pre_op_attr *objp)
  586. +{
  587. + register int32_t *buf;
  588. +
  589. + if (!xdr_bool (xdrs, &objp->attributes_follow))
  590. + return FALSE;
  591. + switch (objp->attributes_follow) {
  592. + case TRUE:
  593. + if (!xdr_wcc_attr (xdrs, &objp->pre_op_attr_u.attributes))
  594. + return FALSE;
  595. + break;
  596. + case FALSE:
  597. + break;
  598. + default:
  599. + return FALSE;
  600. + }
  601. + return TRUE;
  602. +}
  603. +
  604. +bool_t
  605. +xdr_wcc_data (XDR *xdrs, wcc_data *objp)
  606. +{
  607. + register int32_t *buf;
  608. +
  609. + if (!xdr_pre_op_attr (xdrs, &objp->before))
  610. + return FALSE;
  611. + if (!xdr_post_op_attr (xdrs, &objp->after))
  612. + return FALSE;
  613. + return TRUE;
  614. +}
  615. +
  616. +bool_t
  617. +xdr_diropargs3 (XDR *xdrs, diropargs3 *objp)
  618. +{
  619. + register int32_t *buf;
  620. +
  621. + if (!xdr_nfs_fh3 (xdrs, &objp->dir))
  622. + return FALSE;
  623. + if (!xdr_filename3 (xdrs, &objp->name))
  624. + return FALSE;
  625. + return TRUE;
  626. +}
  627. +
  628. +bool_t
  629. +xdr_LOOKUP3args (XDR *xdrs, LOOKUP3args *objp)
  630. +{
  631. + register int32_t *buf;
  632. +
  633. + if (!xdr_diropargs3 (xdrs, &objp->what))
  634. + return FALSE;
  635. + return TRUE;
  636. +}
  637. +
  638. +bool_t
  639. +xdr_LOOKUP3resok (XDR *xdrs, LOOKUP3resok *objp)
  640. +{
  641. + register int32_t *buf;
  642. +
  643. + if (!xdr_nfs_fh3 (xdrs, &objp->object))
  644. + return FALSE;
  645. + if (!xdr_post_op_attr (xdrs, &objp->obj_attributes))
  646. + return FALSE;
  647. + if (!xdr_post_op_attr (xdrs, &objp->dir_attributes))
  648. + return FALSE;
  649. + return TRUE;
  650. +}
  651. +
  652. +bool_t
  653. +xdr_LOOKUP3resfail (XDR *xdrs, LOOKUP3resfail *objp)
  654. +{
  655. + register int32_t *buf;
  656. +
  657. + if (!xdr_post_op_attr (xdrs, &objp->dir_attributes))
  658. + return FALSE;
  659. + return TRUE;
  660. +}
  661. +
  662. +bool_t
  663. +xdr_LOOKUP3res (XDR *xdrs, LOOKUP3res *objp)
  664. +{
  665. + register int32_t *buf;
  666. +
  667. + if (!xdr_nfsstat3 (xdrs, &objp->status))
  668. + return FALSE;
  669. + switch (objp->status) {
  670. + case NFS3_OK:
  671. + if (!xdr_LOOKUP3resok (xdrs, &objp->LOOKUP3res_u.resok))
  672. + return FALSE;
  673. + break;
  674. + default:
  675. + if (!xdr_LOOKUP3resfail (xdrs, &objp->LOOKUP3res_u.resfail))
  676. + return FALSE;
  677. + break;
  678. + }
  679. + return TRUE;
  680. +}
  681. +
  682. +bool_t
  683. +xdr_READ3args (XDR *xdrs, READ3args *objp)
  684. +{
  685. + register int32_t *buf;
  686. +
  687. + if (!xdr_nfs_fh3 (xdrs, &objp->file))
  688. + return FALSE;
  689. + if (!xdr_offset3 (xdrs, &objp->offset))
  690. + return FALSE;
  691. + if (!xdr_count3 (xdrs, &objp->count))
  692. + return FALSE;
  693. + return TRUE;
  694. +}
  695. +
  696. +bool_t
  697. +xdr_READ3resok (XDR *xdrs, READ3resok *objp)
  698. +{
  699. + register int32_t *buf;
  700. +
  701. + if (!xdr_post_op_attr (xdrs, &objp->file_attributes))
  702. + return FALSE;
  703. + if (!xdr_count3 (xdrs, &objp->count))
  704. + return FALSE;
  705. + if (!xdr_bool (xdrs, &objp->eof))
  706. + return FALSE;
  707. + if (!xdr_bytes (xdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, ~0))
  708. + return FALSE;
  709. + return TRUE;
  710. +}
  711. +
  712. +bool_t
  713. +xdr_READ3resfail (XDR *xdrs, READ3resfail *objp)
  714. +{
  715. + register int32_t *buf;
  716. +
  717. + if (!xdr_post_op_attr (xdrs, &objp->file_attributes))
  718. + return FALSE;
  719. + return TRUE;
  720. +}
  721. +
  722. +bool_t
  723. +xdr_READ3res (XDR *xdrs, READ3res *objp)
  724. +{
  725. + register int32_t *buf;
  726. +
  727. + if (!xdr_nfsstat (xdrs, &objp->status))
  728. + return FALSE;
  729. + switch (objp->status) {
  730. + case NFS3_OK:
  731. + if (!xdr_READ3resok (xdrs, &objp->READ3res_u.resok))
  732. + return FALSE;
  733. + break;
  734. + default:
  735. + if (!xdr_READ3resfail (xdrs, &objp->READ3res_u.resfail))
  736. + return FALSE;
  737. + break;
  738. + }
  739. + return TRUE;
  740. +}