Ronnie Sahlberg [Sun, 2 Oct 2011 23:55:42 +0000 (10:55 +1100)]
READDIRPLUS emulation: Some embedded servers do not support READDIRPLUS,
so try to trap this and emulate it with READDIR + a LOOKUP loop to get the attributes.
Since we are fully async we can do all the lookups in concurrently so it should not be that very exopensive compared to the cheaper READDIRPLUS call.
Ronnie Sahlberg [Mon, 19 Sep 2011 10:23:45 +0000 (20:23 +1000)]
Donr declate AUTH as a struct in libnfs.h
make it include rpc/auth.h properly instead
Mike Frysinger [Sun, 18 Sep 2011 01:35:38 +0000 (11:35 +1000)]
ignore generate libnfs.pc
Mike Frysinger [Sun, 18 Sep 2011 01:35:40 +0000 (11:35 +1000)]
tirpc: use pkg-config to find details
Hardcoding paths breaks cross-compiling, so use the pkg-config files
that libtirpc already provides.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Ronnie Sahlberg [Mon, 19 Sep 2011 10:15:47 +0000 (20:15 +1000)]
Merge branch 'master' of github.com:sahlberg/libnfs
Mike Frysinger [Sun, 18 Sep 2011 01:35:39 +0000 (11:35 +1000)]
add maintainer e-mail to AC_INIT
This way `./configure --help` and PACKAGE_BUGREPORT get the right values.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Ronnie Sahlberg [Fri, 16 Sep 2011 09:01:11 +0000 (02:01 -0700)]
Merge pull request #15 from OpenELEC/libnfs-pkgconfig
add support to create a pkgconfig file 'libnfs.pc' on build, and install
Stephan Raue [Fri, 16 Sep 2011 06:23:23 +0000 (08:23 +0200)]
add support to create a pkgconfig file 'libnfs.pc' on build, and install this with 'make install'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
Ronnie Sahlberg [Tue, 13 Sep 2011 05:17:21 +0000 (15:17 +1000)]
update README with highly non-portable capability support on some linux kernels
Ronnie Sahlberg [Tue, 13 Sep 2011 05:10:45 +0000 (15:10 +1000)]
Merge remote branch 'memphiz/win32'
Ronnie Sahlberg [Tue, 13 Sep 2011 05:06:21 +0000 (15:06 +1000)]
Merge remote branch 'memphiz/listservers'
unknown [Mon, 12 Sep 2011 17:58:23 +0000 (19:58 +0200)]
[add] - list nfs servers nfsclient-sync
Memphiz [Mon, 12 Sep 2011 17:22:00 +0000 (19:22 +0200)]
[win32] - completed win32 port
Memphiz [Mon, 12 Sep 2011 17:21:02 +0000 (19:21 +0200)]
[fix] - vs2010 project for libnfs
Memphiz [Mon, 12 Sep 2011 16:58:28 +0000 (18:58 +0200)]
[add/change] - win32 wrappers
Memphiz [Mon, 12 Sep 2011 16:46:57 +0000 (18:46 +0200)]
[fix] - fixed example - don't exit on read failure during dirent (it could be a directory - non fatal if read fails on that)
- fixed sprintf pointer
Memphiz [Mon, 12 Sep 2011 16:46:57 +0000 (18:46 +0200)]
[fix] - fixed example - don't exit on read failure during dirent (it could be a directory - non fatal if read fails on that)
- fixed sprintf pointer
Ronnie Sahlberg [Mon, 12 Sep 2011 12:20:56 +0000 (22:20 +1000)]
remove debug message
Ronnie Sahlberg [Mon, 12 Sep 2011 12:14:26 +0000 (22:14 +1000)]
when creating a socket, spin over a number of low-numbered ports
and try to bind to a system port in case the user is root or the
binary has the CAP_NET_BIND_SERVICE capability
this removes the need to use 'insecure' on the server
Ronnie Sahlberg [Sun, 11 Sep 2011 12:13:28 +0000 (22:13 +1000)]
Large-Writes: just like for large-reads, chop large writes up into the smallest
of 32kb and what the server responded as the max write size and send them out in parallell to the server.
32kb is a common limitation in XDR libraries so even if the server says IT can handle writes larget than that, our XDR library might not.
Ronnie Sahlberg [Sun, 11 Sep 2011 11:32:48 +0000 (21:32 +1000)]
Add a call to find the queue-length so we can see how many I/O we have in flight from the application layer.
Ronnie Sahlberg [Sat, 3 Sep 2011 06:23:44 +0000 (16:23 +1000)]
Update win32 readme to point to location for oncrpc library for windows
Ronnie Sahlberg [Sat, 3 Sep 2011 05:40:13 +0000 (15:40 +1000)]
Add Windows as a supported platform
unknown [Fri, 2 Sep 2011 22:58:31 +0000 (00:58 +0200)]
[fix] - fix connect for win32 - return values are inverted
unknown [Fri, 2 Sep 2011 22:27:02 +0000 (00:27 +0200)]
[add] - implement set_non_blocking for socket
unknown [Fri, 2 Sep 2011 22:25:39 +0000 (00:25 +0200)]
[fix] - fix win32_inet_pton
WiSo [Fri, 2 Sep 2011 22:21:40 +0000 (00:21 +0200)]
[WIN32] added nfsclient-sync to the solution. still manually linked with libnfs because the project dependency setting somehow didn't linked it.
WiSo [Fri, 2 Sep 2011 22:13:28 +0000 (00:13 +0200)]
[WIN32] added project file for nfsclient-sync.exe
WiSo [Fri, 2 Sep 2011 21:32:38 +0000 (23:32 +0200)]
[WIN32] disable some warnings
WiSo [Fri, 2 Sep 2011 21:24:47 +0000 (23:24 +0200)]
[WIN32] added visual studio project files to libnfs (oncrpc path still hardcoded at several places)
Memphiz [Thu, 1 Sep 2011 19:35:54 +0000 (21:35 +0200)]
[win32] - make it compile on win32
Ronnie Sahlberg [Sat, 3 Sep 2011 04:53:10 +0000 (14:53 +1000)]
remove old libnfs.def and update the buildscript to the new name libnfs-win32.def
Memphiz [Thu, 1 Sep 2011 19:31:56 +0000 (21:31 +0200)]
[add] - win32 compat stuff
Ronnie Sahlberg [Sat, 3 Sep 2011 04:51:48 +0000 (14:51 +1000)]
Revert "Rename libnfs.def to libnfs-win32.def"
This reverts commit
a3d6cf111ed6c756b4483eb02486c046a3d0195b.
Ronnie Sahlberg [Sat, 3 Sep 2011 04:11:22 +0000 (14:11 +1000)]
memset() is posix, bzero() is not change bzero into memset
Ronnie Sahlberg [Sat, 3 Sep 2011 03:28:37 +0000 (13:28 +1000)]
Rename libnfs.def to libnfs-win32.def
Ronnie Sahlberg [Sat, 3 Sep 2011 01:30:10 +0000 (11:30 +1000)]
remove some includes that dont exist on windows
Ronnie Sahlberg [Sat, 3 Sep 2011 01:25:50 +0000 (11:25 +1000)]
cast to char * to avoid compiler warnings for get/setsockopt
Ronnie Sahlberg [Sat, 3 Sep 2011 01:11:36 +0000 (11:11 +1000)]
Merge branch 'master' into win32-3
Ronnie Sahlberg [Sat, 3 Sep 2011 01:08:58 +0000 (11:08 +1000)]
cast the pointer to char * for all calls to bzero
Ronnie Sahlberg [Sat, 3 Sep 2011 00:57:42 +0000 (10:57 +1000)]
Merge branch 'win32' into win32-3
Ronnie Sahlberg [Fri, 2 Sep 2011 10:45:30 +0000 (20:45 +1000)]
using READDIRPLUS3 we get some extra fields for the direentry structure for free, such as type, mode, size, timestamps
Ronnie Sahlberg [Fri, 2 Sep 2011 10:27:01 +0000 (20:27 +1000)]
nfs_opendir() switch to using READDIRPLUS3 instead of READDIR3 when reading directories.
Ronnie Sahlberg [Sun, 28 Aug 2011 09:05:46 +0000 (19:05 +1000)]
nfs.x: some rpcgen's can not handle multiple union choices for the same arm.
Make sure each choice has a dedicated arm
Ronnie Sahlberg [Thu, 1 Sep 2011 09:48:42 +0000 (19:48 +1000)]
add support for opensolaris
Ronnie Sahlberg [Tue, 30 Aug 2011 06:03:26 +0000 (16:03 +1000)]
win32 add build script for visual studio
Ronnie Sahlberg [Tue, 30 Aug 2011 05:56:53 +0000 (15:56 +1000)]
Win32: make the sympols public in a dll
Ronnie Sahlberg [Tue, 30 Aug 2011 05:54:29 +0000 (15:54 +1000)]
Win32: add a libnfs.def file so we can build libraries/dlls
Ronnie Sahlberg [Mon, 29 Aug 2011 09:59:36 +0000 (19:59 +1000)]
use vsnprintf() on all platforms, dont special case win32 for vsnprintf and all other platforms use vasprintf
Ronnie Sahlberg [Mon, 29 Aug 2011 08:00:09 +0000 (18:00 +1000)]
Win32: add workaround for lack of vasprintf() and use vsnprintf() on windows on a fixed size buffer
Ronnie Sahlberg [Sun, 28 Aug 2011 09:48:01 +0000 (19:48 +1000)]
WIN32: win32 does not have poll()
add trivial replacement function
Ronnie Sahlberg [Sun, 28 Aug 2011 09:46:12 +0000 (19:46 +1000)]
win32 oncrpc environment needx xdr.h before including auth.h
Ronnie Sahlberg [Sun, 28 Aug 2011 09:45:00 +0000 (19:45 +1000)]
wondows dont have vasprintf()
disable for now and reimplement later
Ronnie Sahlberg [Sun, 28 Aug 2011 09:43:33 +0000 (19:43 +1000)]
Win32: more win32 adaptations
Ronnie Sahlberg [Sun, 28 Aug 2011 09:30:10 +0000 (19:30 +1000)]
VC10 dont like ';;'
Ronnie Sahlberg [Sun, 28 Aug 2011 09:29:08 +0000 (19:29 +1000)]
Win32: the stat structure on win32 does not have blocks or blocksize
Ronnie Sahlberg [Sun, 28 Aug 2011 09:27:23 +0000 (19:27 +1000)]
replace index/rindex with modern equivalents
Ronnie Sahlberg [Sun, 28 Aug 2011 09:27:23 +0000 (19:27 +1000)]
replace index/rindex with modern equivalents
Ronnie Sahlberg [Sun, 28 Aug 2011 09:25:20 +0000 (19:25 +1000)]
nfs_set_auth() is a void and does not return anything
Ronnie Sahlberg [Sun, 28 Aug 2011 09:25:20 +0000 (19:25 +1000)]
nfs_set_auth() is a void and does not return anything
Ronnie Sahlberg [Sun, 28 Aug 2011 09:24:18 +0000 (19:24 +1000)]
Win32 changes, include files we need when compiling under win32
and some socket ops are slightly different
Ronnie Sahlberg [Sun, 28 Aug 2011 09:05:46 +0000 (19:05 +1000)]
nfs.x: some rpcgen's can not handle multiple union choices for the same arm.
Make sure each choice has a dedicated arm
Ronnie Sahlberg [Sun, 28 Aug 2011 08:59:13 +0000 (18:59 +1000)]
callit_cb() : dont return a value from avoid function
Ronnie Sahlberg [Sun, 28 Aug 2011 08:59:13 +0000 (18:59 +1000)]
callit_cb() : dont return a value from avoid function
Ronnie Sahlberg [Sun, 31 Jul 2011 21:32:08 +0000 (07:32 +1000)]
bump the configure.ac version to 1.0
Ronnie Sahlberg [Sun, 31 Jul 2011 08:28:09 +0000 (18:28 +1000)]
Add packaging directory and script and specfile to build RPM packages
Ronnie Sahlberg [Sun, 31 Jul 2011 08:11:52 +0000 (18:11 +1000)]
Dont install slist.h or libnfs-private.h
Ronnie Sahlberg [Sun, 31 Jul 2011 00:59:46 +0000 (10:59 +1000)]
Initialize the rootfh handle when creating the nfs context or else
we will try to free a wild pointer if the mount failed
and we proceed to call nfs_destroy_context();
Ronnie Sahlberg [Sun, 31 Jul 2011 00:46:34 +0000 (10:46 +1000)]
Add automatic reconnect after TCP session failure for the sync interface.
Once a NFS TCP connection has been idle for a very long time, say
10-15 minutes, it is common that NFS servers will tear down the TCP connection.
So add code to re-connect to the NFS server and re-issue any i/o that might have been in flight (unlikely unless the server has hung)
While it is sufficient to just reconnect to tcp port 2049, it was much simplet to just utilize the nfs_mount() function.
This means that instead of just reconnecting TCP port 2049, we do a full blown
nfs mount via portmapper and mountd protocols.
Ronnie Sahlberg [Wed, 20 Jul 2011 09:21:02 +0000 (02:21 -0700)]
Merge pull request #11 from Memphiz/master
buildsys was missing the installation of the raw haders...
Memphiz [Tue, 19 Jul 2011 18:11:48 +0000 (20:11 +0200)]
[fix] - install the raw headers ...
Ronnie Sahlberg [Mon, 18 Jul 2011 01:49:21 +0000 (11:49 +1000)]
typo
Ronnie Sahlberg [Mon, 18 Jul 2011 00:45:54 +0000 (10:45 +1000)]
FreeBSD works too
Ronnie Sahlberg [Sun, 17 Jul 2011 06:45:12 +0000 (16:45 +1000)]
Add cygwin to supported/tested platforms
Ronnie Sahlberg [Sun, 17 Jul 2011 06:33:27 +0000 (16:33 +1000)]
We need the same uint64_t workaround for cygwin as we have for OSX
since rpcgen on cygwin can not handle hyper either
Ronnie Sahlberg [Sun, 17 Jul 2011 06:32:45 +0000 (16:32 +1000)]
Add a flag --enable-tirpc to the configure script
Ronnie Sahlberg [Sat, 16 Jul 2011 07:30:44 +0000 (17:30 +1000)]
since UDP is unreliable, send the CALLIT broadcasts 3 times, one second apart when probing for local NFS servers
Ronnie Sahlberg [Sat, 16 Jul 2011 07:27:12 +0000 (17:27 +1000)]
break out the loop for sending a NFSd probe bcast on every interface into a separate function
Ronnie Sahlberg [Mon, 11 Jul 2011 21:32:07 +0000 (14:32 -0700)]
Merge pull request #10 from Memphiz/master
Fixing allocation of if list for osx
Memphiz [Mon, 11 Jul 2011 17:16:13 +0000 (19:16 +0200)]
[fix] - fix allocation of if list for osx
- removed one unneeded header in examples/nfsclient-bcast.c which was breaking build under osx
Ronnie Sahlberg [Sat, 9 Jul 2011 22:50:36 +0000 (08:50 +1000)]
We have to include config.h when testing for precense of sockaddr sa_len
Ronnie Sahlberg [Sat, 9 Jul 2011 22:39:54 +0000 (08:39 +1000)]
On OSX and other systems where we have sockaddr_in, SIOCGIFCONF returns a packed list of ifreq structures, so we can not just index them as (struct ifreq *)[i]
Instead we have to compute the offset into the buffer for where the next record starts (this offset might or might not be sizeof(struct ifreq)
Ronnie Sahlberg [Thu, 7 Jul 2011 07:11:58 +0000 (00:11 -0700)]
Merge pull request #9 from t-nelson/fix_vpath_build
Fix vpath build
Ronnie Sahlberg [Thu, 7 Jul 2011 07:09:34 +0000 (00:09 -0700)]
Merge pull request #8 from t-nelson/update_gitignore
Add new example bins to .gitignore
Trent Nelson [Wed, 6 Jul 2011 20:33:00 +0000 (16:33 -0400)]
Fix out-of-tree (VPATH) builds
Trent Nelson [Wed, 6 Jul 2011 20:32:08 +0000 (16:32 -0400)]
Simplify examples Makefile
Trent Nelson [Wed, 6 Jul 2011 20:37:06 +0000 (16:37 -0400)]
Add new example bins to .gitignore
Ronnie Sahlberg [Sun, 3 Jul 2011 22:46:19 +0000 (08:46 +1000)]
when ioctl() for getting the broadcast address fails, continue the loop to the next entry instead of exiting out
Ronnie Sahlberg [Sun, 3 Jul 2011 13:30:25 +0000 (06:30 -0700)]
Merge pull request #7 from Memphiz/master
Fix missing include for osx
Memphiz [Sun, 3 Jul 2011 13:25:48 +0000 (15:25 +0200)]
- fixed missing include for osx
Ronnie Sahlberg [Sun, 3 Jul 2011 05:30:18 +0000 (15:30 +1000)]
add support got NFSACL protocol and NULL and GETACL procedures.
add example of raw interface for NFSACL
Ronnie Sahlberg [Sat, 2 Jul 2011 21:41:15 +0000 (07:41 +1000)]
add back a check for sa_len in sockaddr structure.
Ronnie Sahlberg [Sat, 2 Jul 2011 02:16:37 +0000 (12:16 +1000)]
With broadcast PDUs we can receive multiple replies so must make sure we
delete the previuous unmarshalling buffer when we start over and
process the second pdu to the initial call.
Or else we will leak memory very slowly when processing broadcast RPC replies
Ronnie Sahlberg [Sat, 2 Jul 2011 01:23:50 +0000 (11:23 +1000)]
remove some headers we dont need from the listservers example
Ronnie Sahlberg [Sat, 2 Jul 2011 01:21:44 +0000 (11:21 +1000)]
Add the bcast and the listservers examples to the new build system
Ronnie Sahlberg [Sat, 2 Jul 2011 01:10:36 +0000 (11:10 +1000)]
Merge remote branch 't-nelson/automake'
Ronnie Sahlberg [Sat, 2 Jul 2011 01:10:05 +0000 (11:10 +1000)]
Pull out changes to Makefile.in so that t-nelsons autobuild changes apply
Ronnie Sahlberg [Sat, 2 Jul 2011 00:33:19 +0000 (10:33 +1000)]
document the find_all_servers function
Ronnie Sahlberg [Sat, 2 Jul 2011 00:30:16 +0000 (10:30 +1000)]
add example for sync interface to probe for all local servers
Ronnie Sahlberg [Sat, 2 Jul 2011 00:04:50 +0000 (10:04 +1000)]
collect nfs servers into a dedicated list and parse this list and print the results once the response collection timeout has expired