if (rpc_pkt.u.reply.rstatus ||
rpc_pkt.u.reply.verifier ||
rpc_pkt.u.reply.astatus ||
- rpc_pkt.u.reply.data[0])
+ rpc_pkt.u.reply.data[0]) {
+ switch (ntohl(rpc_pkt.u.reply.astatus)) {
+ case 0: /* Not an error */
+ break;
+ case 2: /* Remote can't support NFS version */
+ printf("*** ERROR: NFS version not supported: Requested: V%d, accepted: min V%d - max V%d\n",
+ 2,
+ ntohl(rpc_pkt.u.reply.data[0]),
+ ntohl(rpc_pkt.u.reply.data[1]));
+ break;
+ default: /* Unknown error on 'accept state' flag */
+ printf("*** ERROR: accept state error (%d)\n",
+ ntohl(rpc_pkt.u.reply.astatus));
+ break;
+ }
return -1;
+ }
memcpy(filefh, rpc_pkt.u.reply.data + 1, NFS_FHSIZE);