Lines Matching refs:rpc_pkt

187 	struct rpc_t rpc_pkt;
194 rpc_pkt.u.call.id = htonl(id);
195 rpc_pkt.u.call.type = htonl(MSG_CALL);
196 rpc_pkt.u.call.rpcvers = htonl(2); /* use RPC version 2 */
197 rpc_pkt.u.call.prog = htonl(rpc_prog);
203 rpc_pkt.u.call.vers = htonl(2);
207 rpc_pkt.u.call.vers = htonl(3);
218 rpc_pkt.u.call.vers = htonl(1);
222 rpc_pkt.u.call.vers = htonl(2);
226 rpc_pkt.u.call.vers = htonl(3);
236 rpc_pkt.u.call.vers = htonl(2); /* portmapper is version 2 */
238 rpc_pkt.u.call.proc = htonl(rpc_proc);
239 p = rpc_pkt.u.call.data;
244 pktlen = (char *)p + datalen * sizeof(uint32_t) - (char *)&rpc_pkt;
247 &rpc_pkt.u.data[0], pktlen);
471 static int rpc_handle_error(struct rpc_t *rpc_pkt)
473 if (rpc_pkt->u.reply.rstatus ||
474 rpc_pkt->u.reply.verifier ||
475 rpc_pkt->u.reply.astatus ||
476 rpc_pkt->u.reply.data[0]) {
477 switch (ntohl(rpc_pkt->u.reply.astatus)) {
482 const int min = ntohl(rpc_pkt->u.reply.data[0]);
483 const int max = ntohl(rpc_pkt->u.reply.data[1]);
489 ntohl(rpc_pkt->u.reply.data[0]),
490 ntohl(rpc_pkt->u.reply.data[1]));
498 ntohl(rpc_pkt->u.reply.data[0]),
499 ntohl(rpc_pkt->u.reply.data[1]));
510 ntohl(rpc_pkt->u.reply.astatus));
521 struct rpc_t rpc_pkt;
523 memcpy(&rpc_pkt.u.data[0], pkt, len);
527 if (ntohl(rpc_pkt.u.reply.id) > rpc_id)
529 else if (ntohl(rpc_pkt.u.reply.id) < rpc_id)
532 if (rpc_pkt.u.reply.rstatus ||
533 rpc_pkt.u.reply.verifier ||
534 rpc_pkt.u.reply.astatus)
539 nfs_server_mount_port = ntohl(rpc_pkt.u.reply.data[0]);
542 nfs_server_port = ntohl(rpc_pkt.u.reply.data[0]);
551 struct rpc_t rpc_pkt;
556 memcpy(&rpc_pkt.u.data[0], pkt, len);
558 if (ntohl(rpc_pkt.u.reply.id) > rpc_id)
560 else if (ntohl(rpc_pkt.u.reply.id) < rpc_id)
563 ret = rpc_handle_error(&rpc_pkt);
570 memcpy(dirfh, rpc_pkt.u.reply.data + 1, NFS_FHSIZE);
572 dirfh3_length = ntohl(rpc_pkt.u.reply.data[1]);
575 memcpy(dirfh, rpc_pkt.u.reply.data + 2, dirfh3_length);
583 struct rpc_t rpc_pkt;
587 memcpy(&rpc_pkt.u.data[0], pkt, len);
589 if (ntohl(rpc_pkt.u.reply.id) > rpc_id)
591 else if (ntohl(rpc_pkt.u.reply.id) < rpc_id)
594 if (rpc_pkt.u.reply.rstatus ||
595 rpc_pkt.u.reply.verifier ||
596 rpc_pkt.u.reply.astatus)
607 struct rpc_t rpc_pkt;
612 memcpy(&rpc_pkt.u.data[0], pkt, len);
614 if (ntohl(rpc_pkt.u.reply.id) > rpc_id)
616 else if (ntohl(rpc_pkt.u.reply.id) < rpc_id)
619 ret = rpc_handle_error(&rpc_pkt);
624 if (((uchar *)&(rpc_pkt.u.reply.data[0]) - (uchar *)(&rpc_pkt) + NFS_FHSIZE) > len)
626 memcpy(filefh, rpc_pkt.u.reply.data + 1, NFS_FHSIZE);
628 filefh3_length = ntohl(rpc_pkt.u.reply.data[1]);
631 memcpy(filefh, rpc_pkt.u.reply.data + 2, filefh3_length);
667 struct rpc_t rpc_pkt;
673 memcpy((unsigned char *)&rpc_pkt, pkt, len);
675 if (ntohl(rpc_pkt.u.reply.id) > rpc_id)
677 else if (ntohl(rpc_pkt.u.reply.id) < rpc_id)
680 if (rpc_pkt.u.reply.rstatus ||
681 rpc_pkt.u.reply.verifier ||
682 rpc_pkt.u.reply.astatus ||
683 rpc_pkt.u.reply.data[0])
688 nfs3_get_attributes_offset(rpc_pkt.u.reply.data);
692 rlen = ntohl(rpc_pkt.u.reply.data[1 + nfsv3_data_offset]);
694 if (((uchar *)&(rpc_pkt.u.reply.data[0]) - (uchar *)(&rpc_pkt) + rlen) > len)
697 if (*((char *)&(rpc_pkt.u.reply.data[2 + nfsv3_data_offset])) != '/') {
703 (uchar *)&(rpc_pkt.u.reply.data[2 + nfsv3_data_offset]),
708 (uchar *)&(rpc_pkt.u.reply.data[2 + nfsv3_data_offset]),
717 struct rpc_t rpc_pkt;
723 memcpy(&rpc_pkt.u.data[0], pkt, sizeof(rpc_pkt.u.reply));
725 if (ntohl(rpc_pkt.u.reply.id) > rpc_id)
727 else if (ntohl(rpc_pkt.u.reply.id) < rpc_id)
730 if (rpc_pkt.u.reply.rstatus ||
731 rpc_pkt.u.reply.verifier ||
732 rpc_pkt.u.reply.astatus ||
733 rpc_pkt.u.reply.data[0]) {
734 if (rpc_pkt.u.reply.rstatus)
736 if (rpc_pkt.u.reply.astatus)
738 return -ntohl(rpc_pkt.u.reply.data[0]);
748 rlen = ntohl(rpc_pkt.u.reply.data[18]);
749 data_ptr = (uchar *)&(rpc_pkt.u.reply.data[19]);
752 nfs3_get_attributes_offset(rpc_pkt.u.reply.data);
755 rlen = ntohl(rpc_pkt.u.reply.data[1 + nfsv3_data_offset]);
761 &(rpc_pkt.u.reply.data[4 + nfsv3_data_offset]);
764 if (((uchar *)&(rpc_pkt.u.reply.data[0]) - (uchar *)(&rpc_pkt) + rlen) > len)