win32 oncrpc environment needx xdr.h before including auth.h
[deb_libnfs.git] / lib / libnfs.c
index 52709237c237e56400f7732d4d6d3ffd2708e2b3..5fd91ea03e6379ea55e246ef2396976bb1f8444a 100644 (file)
  */
 
 #define _GNU_SOURCE
+
+#if defined(WIN32)
+#include <winsock2.h>
+#define DllExport
+#define O_SYNC 0
+typedef int uid_t;
+typedef int gid_t;
+#else
+#include <strings.h>
+#include <sys/statvfs.h>
+#include <utime.h>
+#include <unistd.h>
+#endif
+
 #include <stdio.h>
 #include <stdarg.h>
 #include <stdlib.h>
 #include <string.h>
-#include <strings.h>
 #include <errno.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <sys/statvfs.h>
-#include <utime.h>
-#include <unistd.h>
 #include <fcntl.h>
 #include "libnfs.h"
 #include "libnfs-raw.h"
@@ -557,7 +567,7 @@ static int nfs_lookup_path_async_internal(struct nfs_context *nfs, struct nfs_cb
        }
 
        path = data->path;
-       str = index(path, '/');
+       str = strchr(path, '/');
        if (str != NULL) {
                *str = 0;
                data->path = str+1;
@@ -671,8 +681,10 @@ static void nfs_stat_1_cb(struct rpc_context *rpc _U_, int status, void *command
         st.st_gid     = res->GETATTR3res_u.resok.obj_attributes.gid;
         st.st_rdev    = 0;
         st.st_size    = res->GETATTR3res_u.resok.obj_attributes.size;
+#if !defined(WIN32)
         st.st_blksize = 4096;
         st.st_blocks  = res->GETATTR3res_u.resok.obj_attributes.size / 4096;
+#endif
         st.st_atime   = res->GETATTR3res_u.resok.obj_attributes.atime.seconds;
         st.st_mtime   = res->GETATTR3res_u.resok.obj_attributes.mtime.seconds;
         st.st_ctime   = res->GETATTR3res_u.resok.obj_attributes.ctime.seconds;
@@ -1333,7 +1345,7 @@ int nfs_mkdir_async(struct nfs_context *nfs, const char *path, nfs_cb cb, void *
                return -1;
        }
 
-       ptr = rindex(new_path, '/');
+       ptr = strrchr(new_path, '/');
        if (ptr == NULL) {
                rpc_set_error(nfs->rpc, "Invalid path %s", path);
                return -1;
@@ -1414,7 +1426,7 @@ int nfs_rmdir_async(struct nfs_context *nfs, const char *path, nfs_cb cb, void *
                return -1;
        }
 
-       ptr = rindex(new_path, '/');
+       ptr = strrchr(new_path, '/');
        if (ptr == NULL) {
                rpc_set_error(nfs->rpc, "Invalid path %s", path);
                return -1;
@@ -1546,7 +1558,7 @@ int nfs_creat_async(struct nfs_context *nfs, const char *path, int mode, nfs_cb
                return -1;
        }
 
-       ptr = rindex(new_path, '/');
+       ptr = strrchr(new_path, '/');
        if (ptr == NULL) {
                rpc_set_error(nfs->rpc, "Invalid path %s", path);
                return -1;
@@ -1626,7 +1638,7 @@ int nfs_unlink_async(struct nfs_context *nfs, const char *path, nfs_cb cb, void
                return -1;
        }
 
-       ptr = rindex(new_path, '/');
+       ptr = strrchr(new_path, '/');
        if (ptr == NULL) {
                rpc_set_error(nfs->rpc, "Invalid path %s", path);
                return -1;
@@ -1654,7 +1666,7 @@ static void nfs_opendir_cb(struct rpc_context *rpc _U_, int status, void *comman
        READDIR3res *res;
        struct nfs_cb_data *data = private_data;
        struct nfs_context *nfs = data->nfs;
-       struct nfsdir *nfsdir = data->continue_data;;
+       struct nfsdir *nfsdir = data->continue_data;
        struct entry3 *entry;
        uint64_t cookie;
        
@@ -2528,7 +2540,7 @@ int nfs_symlink_async(struct nfs_context *nfs, const char *oldpath, const char *
                return -1;
        }
 
-       ptr = rindex(symlink_data->newpathparent, '/');
+       ptr = strrchr(symlink_data->newpathparent, '/');
        if (ptr == NULL) {
                rpc_set_error(nfs->rpc, "Invalid path %s", oldpath);
                free_nfs_symlink_data(symlink_data);
@@ -2674,7 +2686,7 @@ int nfs_rename_async(struct nfs_context *nfs, const char *oldpath, const char *n
                free_nfs_rename_data(rename_data);
                return -1;
        }
-       ptr = rindex(rename_data->oldpath, '/');
+       ptr = strrchr(rename_data->oldpath, '/');
        if (ptr == NULL) {
                rpc_set_error(nfs->rpc, "Invalid path %s", oldpath);
                free_nfs_rename_data(rename_data);
@@ -2691,7 +2703,7 @@ int nfs_rename_async(struct nfs_context *nfs, const char *oldpath, const char *n
                free_nfs_rename_data(rename_data);
                return -1;
        }
-       ptr = rindex(rename_data->newpath, '/');
+       ptr = strrchr(rename_data->newpath, '/');
        if (ptr == NULL) {
                rpc_set_error(nfs->rpc, "Invalid path %s", newpath);
                free_nfs_rename_data(rename_data);
@@ -2837,7 +2849,7 @@ int nfs_link_async(struct nfs_context *nfs, const char *oldpath, const char *new
                free_nfs_link_data(link_data);
                return -1;
        }
-       ptr = rindex(link_data->newpath, '/');
+       ptr = strrchr(link_data->newpath, '/');
        if (ptr == NULL) {
                rpc_set_error(nfs->rpc, "Invalid path %s", newpath);
                free_nfs_link_data(link_data);
@@ -2887,11 +2899,11 @@ void nfs_set_error(struct nfs_context *nfs, char *error_string, ...)
        char *str = NULL;
 
         va_start(ap, error_string);
-       vasprintf(&str, error_string, ap);
-       if (nfs->rpc->error_string != NULL) {
-               free(nfs->rpc->error_string);
-       }
-       nfs->rpc->error_string = str;
+       //      vasprintf(&str, error_string, ap);
+       //      if (nfs->rpc->error_string != NULL) {
+       //      free(nfs->rpc->error_string);
+       //}
+       //nfs->rpc->error_string = str;
         va_end(ap);
 }