along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
+#ifdef WIN32
+#include "win32_compat.h"
+#endif/*WIN32*/
+
#include <stdio.h>
#include <errno.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
+#include "libnfs-zdr.h"
#include "libnfs.h"
#include "libnfs-raw.h"
#include "libnfs-private.h"
#include "libnfs-raw-mount.h"
-
int rpc_mount_null_async(struct rpc_context *rpc, rpc_cb cb, void *private_data)
{
struct rpc_pdu *pdu;
- pdu = rpc_allocate_pdu(rpc, MOUNT_PROGRAM, MOUNT_V3, MOUNT3_NULL, cb, private_data, (xdrproc_t)xdr_void, 0);
+ pdu = rpc_allocate_pdu(rpc, MOUNT_PROGRAM, MOUNT_V3, MOUNT3_NULL, cb, private_data, (zdrproc_t)zdr_void, 0);
if (pdu == NULL) {
rpc_set_error(rpc, "Out of memory. Failed to allocate pdu for mount/null call");
return -1;
if (rpc_queue_pdu(rpc, pdu) != 0) {
rpc_set_error(rpc, "Out of memory. Failed to queue pdu for mount/null call");
rpc_free_pdu(rpc, pdu);
- return -2;
+ return -1;
}
return 0;
{
struct rpc_pdu *pdu;
- pdu = rpc_allocate_pdu(rpc, MOUNT_PROGRAM, MOUNT_V3, MOUNT3_MNT, cb, private_data, (xdrproc_t)xdr_mountres3, sizeof(mountres3));
+ pdu = rpc_allocate_pdu(rpc, MOUNT_PROGRAM, MOUNT_V3, MOUNT3_MNT, cb, private_data, (zdrproc_t)zdr_mountres3, sizeof(mountres3));
if (pdu == NULL) {
rpc_set_error(rpc, "Out of memory. Failed to allocate pdu for mount/mnt call");
return -1;
}
- if (xdr_dirpath(&pdu->xdr, &export) == 0) {
- rpc_set_error(rpc, "XDR error. Failed to encode mount/mnt call");
+ if (zdr_dirpath(&pdu->zdr, &export) == 0) {
+ rpc_set_error(rpc, "ZDR error. Failed to encode mount/mnt call");
rpc_free_pdu(rpc, pdu);
- return -2;
+ return -1;
}
if (rpc_queue_pdu(rpc, pdu) != 0) {
rpc_set_error(rpc, "Out of memory. Failed to queue pdu for mount/mnt call");
rpc_free_pdu(rpc, pdu);
- return -2;
+ return -1;
}
return 0;
{
struct rpc_pdu *pdu;
- pdu = rpc_allocate_pdu(rpc, MOUNT_PROGRAM, MOUNT_V3, MOUNT3_DUMP, cb, private_data, (xdrproc_t)xdr_mountlist, sizeof(mountlist));
+ pdu = rpc_allocate_pdu(rpc, MOUNT_PROGRAM, MOUNT_V3, MOUNT3_DUMP, cb, private_data, (zdrproc_t)zdr_mountlist, sizeof(mountlist));
if (pdu == NULL) {
- printf("Failed to allocate pdu for mount/dump\n");
+ rpc_set_error(rpc, "Failed to allocate pdu for mount/dump");
return -1;
}
if (rpc_queue_pdu(rpc, pdu) != 0) {
- printf("Failed to queue mount/dump pdu\n");
+ rpc_set_error(rpc, "Failed to queue mount/dump pdu");
rpc_free_pdu(rpc, pdu);
- return -2;
+ return -1;
}
return 0;
{
struct rpc_pdu *pdu;
- pdu = rpc_allocate_pdu(rpc, MOUNT_PROGRAM, MOUNT_V3, MOUNT3_UMNT, cb, private_data, (xdrproc_t)xdr_void, 0);
+ pdu = rpc_allocate_pdu(rpc, MOUNT_PROGRAM, MOUNT_V3, MOUNT3_UMNT, cb, private_data, (zdrproc_t)zdr_void, 0);
if (pdu == NULL) {
- printf("Failed to allocate pdu for mount/umnt\n");
+ rpc_set_error(rpc, "Failed to allocate pdu for mount/umnt");
return -1;
}
- if (xdr_dirpath(&pdu->xdr, &export) == 0) {
- printf("failed to encode dirpath for mount/umnt\n");
+ if (zdr_dirpath(&pdu->zdr, &export) == 0) {
+ rpc_set_error(rpc, "failed to encode dirpath for mount/umnt");
rpc_free_pdu(rpc, pdu);
- return -2;
+ return -1;
}
if (rpc_queue_pdu(rpc, pdu) != 0) {
- printf("Failed to queue mount/umnt pdu\n");
+ rpc_set_error(rpc, "Failed to queue mount/umnt pdu");
rpc_free_pdu(rpc, pdu);
- return -2;
+ return -1;
}
return 0;
{
struct rpc_pdu *pdu;
- pdu = rpc_allocate_pdu(rpc, MOUNT_PROGRAM, MOUNT_V3, MOUNT3_UMNTALL, cb, private_data, (xdrproc_t)xdr_void, 0);
+ pdu = rpc_allocate_pdu(rpc, MOUNT_PROGRAM, MOUNT_V3, MOUNT3_UMNTALL, cb, private_data, (zdrproc_t)zdr_void, 0);
if (pdu == NULL) {
- printf("Failed to allocate pdu for mount/umntall\n");
+ rpc_set_error(rpc, "Failed to allocate pdu for mount/umntall");
return -1;
}
if (rpc_queue_pdu(rpc, pdu) != 0) {
- printf("Failed to queue mount/umntall pdu\n");
+ rpc_set_error(rpc, "Failed to queue mount/umntall pdu");
rpc_free_pdu(rpc, pdu);
- return -2;
+ return -1;
}
return 0;
{
struct rpc_pdu *pdu;
- pdu = rpc_allocate_pdu(rpc, MOUNT_PROGRAM, MOUNT_V3, MOUNT3_EXPORT, cb, private_data, (xdrproc_t)xdr_exports, sizeof(exports));
+ pdu = rpc_allocate_pdu(rpc, MOUNT_PROGRAM, MOUNT_V3, MOUNT3_EXPORT, cb, private_data, (zdrproc_t)zdr_exports, sizeof(exports));
if (pdu == NULL) {
- printf("Failed to allocate pdu for mount/export\n");
+ rpc_set_error(rpc, "Failed to allocate pdu for mount/export");
return -1;
}
if (rpc_queue_pdu(rpc, pdu) != 0) {
- printf("Failed to queue mount/export pdu\n");
+ rpc_set_error(rpc, "Failed to queue mount/export pdu");
rpc_free_pdu(rpc, pdu);
- return -2;
+ return -1;
}
return 0;
}
return -ERANGE;
}
+
+
+