[win32] - fixed bad number casting when using libnfs on 64bit win8 systems - force...
authorMemphiz <memphis@machzwo.de>
Sun, 12 Jan 2014 13:42:56 +0000 (14:42 +0100)
committerMemphiz <memphis@machzwo.de>
Sun, 12 Jan 2014 13:42:56 +0000 (14:42 +0100)
include/nfsc/libnfs.h
lib/libnfs-sync.c
lib/libnfs.c

index 094de3c27027bad8280853d924f6a2a1fd3aed9b..82b4a061d4499c675fb8e92b7776c3f636837ce0 100644 (file)
@@ -169,8 +169,11 @@ EXTERN int nfs_stat_async(struct nfs_context *nfs, const char *path, nfs_cb cb,
  *      0 : The operation was successfull.
  * -errno : The command failed.
  */
+#ifdef WIN32
+EXTERN int nfs_stat(struct nfs_context *nfs, const char *path, struct __stat64 *st);
+#else
 EXTERN int nfs_stat(struct nfs_context *nfs, const char *path, struct stat *st);
-
+#endif
 
 /*
  * FSTAT()
@@ -194,7 +197,11 @@ EXTERN int nfs_fstat_async(struct nfs_context *nfs, struct nfsfh *nfsfh, nfs_cb
  *      0 : The operation was successfull.
  * -errno : The command failed.
  */
+#ifdef WIN32
+EXTERN int nfs_fstat(struct nfs_context *nfs, struct nfsfh *nfsfh, struct __stat64 *st);
+#else
 EXTERN int nfs_fstat(struct nfs_context *nfs, struct nfsfh *nfsfh, struct stat *st);
+#endif
 
 
 
index 7de245f64531d90c3ee1bba65ad56641d7f99382..baadefa9962df6482ab938823b0da3a51d576c9d 100644 (file)
@@ -208,11 +208,18 @@ static void stat_cb(int status, struct nfs_context *nfs, void *data, void *priva
                nfs_set_error(nfs, "stat call failed with \"%s\"", (char *)data);
                return;
        }
-
-       memcpy(cb_data->return_data, data, sizeof(struct stat));
+#ifdef WIN32
+       memcpy(cb_data->return_data, data, sizeof(struct __stat64));
+#else
+  memcpy(cb_data->return_data, data, sizeof(struct stat));
+#endif
 }
 
+#ifdef WIN32
+int nfs_stat(struct nfs_context *nfs, const char *path, struct __stat64 *st)
+#else
 int nfs_stat(struct nfs_context *nfs, const char *path, struct stat *st)
+#endif
 {
        struct sync_cb_data cb_data;
 
index f8b294a5589ebcffba9a0b8d9e7f345ab8788469..a1a62bb574dd7ef4cd8c7b280d5c6d09dea4048d 100644 (file)
@@ -713,7 +713,11 @@ static void nfs_stat_1_cb(struct rpc_context *rpc, int status, void *command_dat
        GETATTR3res *res;
        struct nfs_cb_data *data = private_data;
        struct nfs_context *nfs = data->nfs;
+#ifdef WIN32
+  struct __stat64 st;
+#else
        struct stat st;
+#endif
 
        assert(rpc->magic == RPC_CONTEXT_MAGIC);