X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=lib%2Flibnfs-sync.c;h=7de245f64531d90c3ee1bba65ad56641d7f99382;hb=bff8fe460dcf4b25071fff966d86877b30eeec90;hp=5f044dd1f2e417c2d1905125df194cb91cffd88b;hpb=5ac848e9083a0bafd353d906e36f073aac3730e0;p=deb_libnfs.git diff --git a/lib/libnfs-sync.c b/lib/libnfs-sync.c index 5f044dd..7de245f 100644 --- a/lib/libnfs-sync.c +++ b/lib/libnfs-sync.c @@ -17,27 +17,66 @@ /* * High level api to nfs filesystems */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#ifdef AROS +#include "aros_compat.h" +#endif + #ifdef WIN32 #include "win32_compat.h" -#define DllExport -#else -#include -#include +#endif + +#ifdef HAVE_NET_IF_H +#include +#endif + +#ifdef ANDROID +#define statvfs statfs +#endif + +#ifdef HAVE_SYS_VFS_H +#include +#endif + +#ifdef HAVE_SYS_STATVFS_H #include -#include +#endif + +#ifdef HAVE_SYS_IOCTL_H #include -#include +#endif + +#ifdef HAVE_SYS_SOCKET_H #include -#include #endif -#ifdef HAVE_CONFIG_H -#include "config.h" +#ifdef HAVE_POLL_H +#include +#endif + +#ifdef HAVE_NETDB_H +#include +#endif + +#ifdef HAVE_UNISTD_H +#include +#endif + +#ifdef HAVE_NETINET_IN_H +#include +#endif + +#ifdef HAVE_STRINGS_H +#include #endif #include #include #include +#include #include #include #include @@ -47,6 +86,7 @@ #include #endif +#include "libnfs-zdr.h" #include "libnfs.h" #include "libnfs-raw.h" #include "libnfs-raw-mount.h" @@ -66,6 +106,8 @@ static void wait_for_reply(struct rpc_context *rpc, struct sync_cb_data *cb_data { struct pollfd pfd; + assert(rpc->magic == RPC_CONTEXT_MAGIC); + while (!cb_data->is_finished) { pfd.fd = rpc_get_fd(rpc); @@ -134,6 +176,8 @@ int nfs_mount(struct nfs_context *nfs, const char *server, const char *export) struct sync_cb_data cb_data; struct rpc_context *rpc = nfs_get_rpc_context(nfs); + assert(rpc->magic == RPC_CONTEXT_MAGIC); + cb_data.is_finished = 0; if (nfs_mount_async(nfs, server, export, mount_cb, &cb_data) != 0) { @@ -1148,6 +1192,8 @@ void mount_getexports_cb(struct rpc_context *mount_context, int status, void *da struct sync_cb_data *cb_data = private_data; exports export; + assert(mount_context->magic == RPC_CONTEXT_MAGIC); + cb_data->is_finished = 1; cb_data->status = status; cb_data->return_data = NULL; @@ -1229,6 +1275,8 @@ void callit_cb(struct rpc_context *rpc, int status, void *data _U_, void *privat char hostdd[16]; struct nfs_server_list *srvr; + assert(rpc->magic == RPC_CONTEXT_MAGIC); + if (status == RPC_STATUS_CANCEL) { return; } @@ -1282,6 +1330,8 @@ static int send_nfsd_probes(struct rpc_context *rpc, INTERFACE_INFO *InterfaceLi { int i=0; + assert(rpc->magic == RPC_CONTEXT_MAGIC); + for(i = 0; i < numIfs; i++) { SOCKADDR *pAddress; @@ -1412,6 +1462,8 @@ static int send_nfsd_probes(struct rpc_context *rpc, struct ifconf *ifc, struct { char *ptr; + assert(rpc->magic == RPC_CONTEXT_MAGIC); + for (ptr =(char *)(ifc->ifc_buf); ptr < (char *)(ifc->ifc_buf) + ifc->ifc_len; ) { struct ifreq *ifr; char bcdd[16];