X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=nfs%2Fnfs.c;h=b6f2728f3c23d2b8f1ba71e58bf3596f42db5c77;hb=8e2558166817abaa94af84afc269899d2b61051c;hp=536b35b6c9d4b5356cd236a2845d96bf6ed297bf;hpb=16104b27bd8deedc07a23aec33b4ef3cde82808f;p=deb_libnfs.git diff --git a/nfs/nfs.c b/nfs/nfs.c index 536b35b..b6f2728 100644 --- a/nfs/nfs.c +++ b/nfs/nfs.c @@ -673,10 +673,9 @@ int rpc_nfs_readlink_async(struct rpc_context *rpc, rpc_cb cb, READLINK3args *ar } -int rpc_nfs_symlink_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh, char *newname, char *oldpath, void *private_data) +int rpc_nfs_symlink_async(struct rpc_context *rpc, rpc_cb cb, SYMLINK3args *args, void *private_data) { struct rpc_pdu *pdu; - SYMLINK3args args; pdu = rpc_allocate_pdu(rpc, NFS_PROGRAM, NFS_V3, NFS3_SYMLINK, cb, private_data, (xdrproc_t)xdr_SYMLINK3res, sizeof(SYMLINK3res)); if (pdu == NULL) { @@ -684,15 +683,7 @@ int rpc_nfs_symlink_async(struct rpc_context *rpc, rpc_cb cb, struct nfs_fh3 *fh return -1; } - memset(&args, 0, sizeof(SYMLINK3args)); - args.where.dir.data.data_len = fh->data.data_len; - args.where.dir.data.data_val = fh->data.data_val; - args.where.name = newname; - args.symlink.symlink_attributes.mode.set_it = 1; - args.symlink.symlink_attributes.mode.set_mode3_u.mode = S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH; - args.symlink.symlink_data = oldpath; - - if (xdr_SYMLINK3args(&pdu->xdr, &args) == 0) { + if (xdr_SYMLINK3args(&pdu->xdr, args) == 0) { rpc_set_error(rpc, "XDR error: Failed to encode SYMLINK3args"); rpc_free_pdu(rpc, pdu); return -2;