2011-02-06 07:45:09 +03:00
|
|
|
LIBNFS is a client library for accessing NFS shares over a network.
|
|
|
|
|
|
|
|
LIBNFS offers three different APIs, for different use :
|
|
|
|
1, RAW : A fully async low level rpc library for nfs protocols
|
|
|
|
This API is described in include/libnfs-raw.h
|
|
|
|
it offers a fully async interface to raw XDR encoded blobs.
|
|
|
|
This api provides very flexible and precice control of the RPC issued.
|
|
|
|
|
|
|
|
examples/nfsclient-raw.c provides examples on how to use the raw API
|
|
|
|
|
|
|
|
2, NFS ASYNC : A fully asynchronous library for high level vfs functions
|
|
|
|
This API is described by the *_async() fucntions in include/libnfs.h.
|
|
|
|
This API provides a fully async access to posix vfs like functions such as
|
|
|
|
stat(), read(), ...
|
|
|
|
|
|
|
|
examples/nfsclient-async.c provides examples on how to use this API
|
|
|
|
|
|
|
|
|
|
|
|
3, NFS SYNC : A synchronous library for high level vfs functions
|
|
|
|
This API is described by the *_sync() fucntions in include/libnfs.h.
|
|
|
|
This API provides access to posix vfs like functions such as
|
|
|
|
stat(), read(), ...
|
|
|
|
|
|
|
|
examples/nfsclient-sync.c provides examples on how to use this API
|
2011-02-06 08:39:37 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ROOT vs NON-ROOT
|
|
|
|
================
|
|
|
|
When running as root, libnfs tries to allocate a system port for its connection
|
|
|
|
to the nfs server. When running as non-root it will use a normal
|
|
|
|
ephemeral port.
|
|
|
|
Many NFS servers default to a mode where they do not allow non-system
|
|
|
|
ports from connecting.
|
|
|
|
These servers require you use the "insecure" export option in /etc/exports
|
|
|
|
in order to allow libnfs clients to be able to connect.
|
2011-06-11 21:37:28 +04:00
|
|
|
|
2011-09-13 09:17:21 +04:00
|
|
|
Some versions of Linux support special capabilities that can be assigned to
|
|
|
|
programs to allow non-root users to bind to system ports.
|
|
|
|
This is set up by running
|
|
|
|
sudo setcap 'cap_net_bind_service=+ep' /path/to/executable
|
|
|
|
When libnfs is linked against an executable with this special capability
|
|
|
|
assigned to it, libnfs may be able to use system ports even when executing
|
|
|
|
under the privilege of a non-root user account.
|
|
|
|
|
|
|
|
This is highly non-portable so IF this works on your linux system, count
|
|
|
|
yourself lucky.
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-07-18 05:49:21 +04:00
|
|
|
PLATFORM support
|
2011-06-11 21:37:28 +04:00
|
|
|
=================
|
|
|
|
As of now this is tested with linux, MacOSX and Apple iOS.
|
|
|
|
|
|
|
|
Linux: - tested with Ubuntu 10.04 - should work with others aswell
|
2011-07-17 10:45:12 +04:00
|
|
|
Cygwin: - tested under 64bit win2k8.
|
2011-06-11 21:37:28 +04:00
|
|
|
MacOSX: - tested with SDK 10.4 (under Snow Leopard) - should also work with later SDKs and 64Bit
|
|
|
|
iOS: - tested with iOS SDK 4.2 - running on iOS 4.3.x
|
2011-07-18 05:49:21 +04:00
|
|
|
FreeBSD:- tested with 8.2
|
2011-09-01 13:48:42 +04:00
|
|
|
OpenSolaris
|
2011-09-12 21:22:00 +04:00
|
|
|
Windows:- tested on Windows 7 64 and Windows XP 32 using Visual Studio 10 (see README.win32.txt for build instructions)
|
2012-12-03 18:38:18 +04:00
|
|
|
Android:
|
2011-07-17 10:45:12 +04:00
|
|
|
|
2012-03-05 06:29:31 +04:00
|
|
|
|
|
|
|
RELEASE TARBALLS
|
|
|
|
================
|
|
|
|
Release tarballs are available at https://github.com/sahlberg/libnfs/downloads
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MAILINGLIST
|
|
|
|
===========
|
|
|
|
A libnfs mailinglist is available at http://groups.google.com/group/libnfs
|
|
|
|
Announcements of new versions of libnfs will be posted to this list.
|
|
|
|
|