GETACL: change the signature for the raw getacl3 function to take GETACL3args pointer...
authorRonnie Sahlberg <ronniesahlberg@gmail.com>
Thu, 8 Mar 2012 11:52:20 +0000 (22:52 +1100)
committerRonnie Sahlberg <ronniesahlberg@gmail.com>
Thu, 8 Mar 2012 11:52:20 +0000 (22:52 +1100)
examples/nfsclient-raw.c
include/libnfs-raw.h
nfs/nfsacl.c

index b125581ac9337bb6fdf0021bc826d7f1fa29da5c..19881d0d5809c251544d2956c27d9554501ac890 100644 (file)
@@ -117,11 +117,14 @@ void acl_getacl_cb(struct rpc_context *rpc _U_, int status, void *data, void *pr
 void acl_null_cb(struct rpc_context *rpc _U_, int status, void *data, void *private_data)
 {
        struct client *client = private_data;
+       GETACL3args args;
 
        printf("Got NFSACL/NULL reply\n");
        printf("Get ACL for root handle\n");
 
-       if (rpc_nfsacl_getacl_async(rpc, acl_getacl_cb, &client->rootfh, NFSACL_MASK_ACL_ENTRY|NFSACL_MASK_ACL_COUNT|NFSACL_MASK_ACL_DEFAULT_ENTRY|NFSACL_MASK_ACL_DEFAULT_COUNT, client) != 0) {
+       args.dir = client->rootfh;
+       args.mask = NFSACL_MASK_ACL_ENTRY|NFSACL_MASK_ACL_COUNT|NFSACL_MASK_ACL_DEFAULT_ENTRY|NFSACL_MASK_ACL_DEFAULT_COUNT;
+       if (rpc_nfsacl_getacl_async(rpc, acl_getacl_cb, &args, client) != 0) {
                printf("Failed to send getacl request\n");
                exit(10);
        }
index c577aa565f36b6670bc0ae43daad082a01ed76fa..423d1d715dc08c96bdc5e3163f63ea38ec11ae32 100644 (file)
@@ -785,7 +785,8 @@ int rpc_nfsacl_null_async(struct rpc_context *rpc, rpc_cb cb, void *private_data
  * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
  *                     data is NULL.
  */
-int rpc_nfsacl_getacl_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, uint32_t mask, void *private_data);
+struct GETACL3args;
+int rpc_nfsacl_getacl_async(struct rpc_context *rpc, rpc_cb cb, struct GETACL3args *args, void *private_data);
 
 
 
index 4561589d1ca9e9f1a8fb616be8f8b131d3c8f35e..a3c3ede55d94e23996bc8f3430aad2f3e0149455 100644 (file)
@@ -51,10 +51,9 @@ int rpc_nfsacl_null_async(struct rpc_context *rpc, rpc_cb cb, void *private_data
 }
 
 
-int rpc_nfsacl_getacl_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, uint32_t mask, void *private_data)
+int rpc_nfsacl_getacl_async(struct rpc_context *rpc, rpc_cb cb, struct GETACL3args *args, void *private_data)
 {
        struct rpc_pdu *pdu;
-       GETACL3args args;
 
        pdu = rpc_allocate_pdu(rpc, NFSACL_PROGRAM, NFSACL_V3, NFSACL3_GETACL, cb, private_data, (xdrproc_t)xdr_GETACL3res, sizeof(GETACL3res));
        if (pdu == NULL) {
@@ -62,11 +61,7 @@ int rpc_nfsacl_getacl_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *
                return -1;
        }
 
-       args.dir.data.data_len = fh->data.data_len;
-       args.dir.data.data_val = fh->data.data_val;
-       args.mask = mask;       
-
-       if (xdr_GETACL3args(&pdu->xdr, &args) == 0) {
+       if (xdr_GETACL3args(&pdu->xdr, args) == 0) {
                rpc_set_error(rpc, "XDR error: Failed to encode GETACL3args");
                rpc_free_pdu(rpc, pdu);
                return -2;