/* Example program using the highlevel sync interface
*/
-
+#ifdef WIN32
+#include "win32_compat.h"
+#else
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/statvfs.h>
+#endif
+
#define SERVER "10.1.1.27"
#define EXPORT "/VIRTUAL"
#define NFSFILE "/BOOKS/Classics/Dracula.djvu.truncated"
#define _GNU_SOURCE
#if defined(WIN32)
-#include <winsock2.h>
-typedef int off_t;
#pragma comment(lib, "ws2_32.lib")
WSADATA wsaData;
#else
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
+#include "libnfs-zdr.h"
#include "libnfs.h"
-#include <rpc/rpc.h> /* for authunix_create() */
#include "libnfs-raw.h"
#include "libnfs-raw-mount.h"
};
+void PrintServerList()
+{
+ struct nfs_server_list *srvrs;
+ struct nfs_server_list *srv;
+
+ srvrs = nfs_find_local_servers();
+
+ for (srv=srvrs; srv; srv = srv->next)
+ {
+ printf("Found nfs server: %s\n", srv->addr);
+
+ }
+ free_nfs_srvr_list(srvrs);
+}
+
char buf[3*1024*1024+337];
int main(int argc _U_, char *argv[] _U_)
{
struct nfs_context *nfs;
int i, ret;
- off_t offset;
+ uint64_t offset;
struct client client;
struct stat st;
struct nfsfh *nfsfh;
client.server = SERVER;
client.export = EXPORT;
client.is_finished = 0;
+
+ PrintServerList();
+
export = mount_getexports(SERVER);
if (export != NULL) {
printf("exports on server %s\n", SERVER);
while((nfsdirent = nfs_readdir(nfs, nfsdir)) != NULL) {
char filename[1024];
printf("Inode:%d Name:%s ", (int)nfsdirent->inode, nfsdirent->name);
- sprintf(&filename, "%s/%s", NFSDIR, nfsdirent->name);
+ sprintf(filename, "%s/%s", NFSDIR, nfsdirent->name);
ret = nfs_open(nfs, filename, O_RDONLY, &nfsfh);
if (ret != 0) {
printf("Failed to open(%s) %s\n", filename, nfs_get_error(nfs));
ret = nfs_read(nfs, nfsfh, sizeof(buf), buf);
if (ret < 0) {
printf("Error reading file\n");
- exit(10);
}
printf("Read %d bytes\n", ret);
ret = nfs_close(nfs, nfsfh);