static bool_t libnfs_rpc_msg(struct rpc_context *rpc, ZDR *zdrs, struct rpc_msg *msg) { int ret; if (!libnfs_zdr_u_int(zdrs, &msg->xid)) { rpc_set_error(rpc, "libnfs_rpc_msg failed to decode XID"); return FALSE; } if (!libnfs_zdr_u_int(zdrs, &msg->direction)) { rpc_set_error(rpc, "libnfs_rpc_msg failed to decode DIRECTION"); return FALSE; } switch (msg->direction) { case CALL: ret = libnfs_rpc_call_body(rpc, zdrs, &msg->body.cbody); if (!ret) { rpc_set_error(rpc, "libnfs_rpc_msg failed to encode " "CALL, ret=%d: %s", ret, rpc_get_error(rpc)); } return ret; case REPLY: ret = libnfs_rpc_reply_body(rpc, zdrs, &msg->body.rbody); if (!ret) { rpc_set_error(rpc, "libnfs_rpc_msg failed to decode " "REPLY, ret=%d: %s", ret, rpc_get_error(rpc)); } return ret; default: rpc_set_error(rpc, "libnfs_rpc_msg failed to decode. " "Neither CALL not REPLY"); return FALSE; } }
static bool_t libnfs_rpc_msg(ZDR *zdrs, struct rpc_msg *msg) { if (!libnfs_zdr_u_int(zdrs, &msg->xid)) { return FALSE; } if (!libnfs_zdr_u_int(zdrs, &msg->direction)) { return FALSE; } switch (msg->direction) { case CALL: return libnfs_rpc_call_body(zdrs, &msg->body.cbody); break; case REPLY: return libnfs_rpc_reply_body(zdrs, &msg->body.rbody); break; default: return FALSE; } }