NFSCLIENT-SYNC: remove some debug output
[deb_libnfs.git] / lib / libnfs.c
index 3c150ac8e14b4d006779fe402124d14677c98f01..c7c9f48285a9f64ade49f9fdd0997d7c16f810ad 100644 (file)
@@ -37,6 +37,8 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
+#include <netinet/in.h>
+#include "libnfs-zdr.h"
 #include "libnfs.h"
 #include "libnfs-raw.h"
 #include "libnfs-raw-mount.h"
@@ -111,7 +113,7 @@ struct nfs_mcb_data {
 static int nfs_lookup_path_async_internal(struct nfs_context *nfs, struct nfs_cb_data *data, struct nfs_fh3 *fh);
 
 
-void nfs_set_auth(struct nfs_context *nfs, AUTH *auth)
+void nfs_set_auth(struct nfs_context *nfs, struct AUTH *auth)
 {
        rpc_set_auth(nfs->rpc, auth);
 }
@@ -2420,7 +2422,12 @@ static void nfs_readlink_1_cb(struct rpc_context *rpc _U_, int status, void *com
 
 static int nfs_readlink_continue_internal(struct nfs_context *nfs, struct nfs_cb_data *data)
 {
-       if (rpc_nfs_readlink_async(nfs->rpc, nfs_readlink_1_cb, &data->fh, data) != 0) {
+       READLINK3args args;
+
+       args.symlink.data.data_len = data->fh.data.data_len; 
+       args.symlink.data.data_val = data->fh.data.data_val; 
+
+       if (rpc_nfs_readlink_async(nfs->rpc, nfs_readlink_1_cb, &args, data) != 0) {
                rpc_set_error(nfs->rpc, "RPC error: Failed to send READLINK call for %s", data->path);
                data->cb(-ENOMEM, nfs, rpc_get_error(nfs->rpc), data->private_data);
                free_nfs_cb_data(data);
@@ -2941,8 +2948,17 @@ static void nfs_symlink_cb(struct rpc_context *rpc _U_, int status, void *comman
 static int nfs_symlink_continue_internal(struct nfs_context *nfs, struct nfs_cb_data *data)
 {
        struct nfs_symlink_data *symlink_data = data->continue_data;
+       SYMLINK3args sa;
+
+       memset(&sa, 0, sizeof(SYMLINK3args));
+       sa.where.dir.data.data_len = data->fh.data.data_len;
+       sa.where.dir.data.data_val = data->fh.data.data_val;
+       sa.where.name = symlink_data->newpathobject;
+       sa.symlink.symlink_attributes.mode.set_it = 1;
+       sa.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;
+       sa.symlink.symlink_data = symlink_data->oldpath;
 
-       if (rpc_nfs_symlink_async(nfs->rpc, nfs_symlink_cb, &data->fh, symlink_data->newpathobject, symlink_data->oldpath, data) != 0) {
+       if (rpc_nfs_symlink_async(nfs->rpc, nfs_symlink_cb, &sa, data) != 0) {
                rpc_set_error(nfs->rpc, "RPC error: Failed to send SYMLINK call for %s", data->path);
                data->cb(-ENOMEM, nfs, rpc_get_error(nfs->rpc), data->private_data);
                free_nfs_cb_data(data);
@@ -3327,7 +3343,7 @@ uint64_t nfs_get_readmax(struct nfs_context *nfs)
  */
 uint64_t nfs_get_writemax(struct nfs_context *nfs)
 {
-       /* Some XDR libraries can not marshall PDUs bigger than this */
+       /* Some ZDR libraries can not marshall PDUs bigger than this */
         if (nfs->writemax < 32768) {
                return nfs->writemax;
        }
@@ -3533,3 +3549,7 @@ const char *nfs_get_export(struct nfs_context *nfs) {
 const struct nfs_fh3 *nfs_get_rootfh(struct nfs_context *nfs) {
       return &nfs->rootfh;
 }
+
+struct nfs_fh3 *nfs_get_fh(struct nfsfh *nfsfh) {
+       return &nfsfh->fh;
+}