deb_libnfs.git
13 years agocast to char * to avoid compiler warnings for get/setsockopt
Ronnie Sahlberg [Sat, 3 Sep 2011 01:25:50 +0000 (11:25 +1000)] 
cast to char * to avoid compiler warnings for get/setsockopt

13 years agoMerge branch 'master' into win32-3
Ronnie Sahlberg [Sat, 3 Sep 2011 01:11:36 +0000 (11:11 +1000)] 
Merge branch 'master' into win32-3

13 years agocast the pointer to char * for all calls to bzero
Ronnie Sahlberg [Sat, 3 Sep 2011 01:08:58 +0000 (11:08 +1000)] 
cast the pointer to char * for all calls to bzero

13 years agoMerge branch 'win32' into win32-3
Ronnie Sahlberg [Sat, 3 Sep 2011 00:57:42 +0000 (10:57 +1000)] 
Merge branch 'win32' into win32-3

13 years agousing READDIRPLUS3 we get some extra fields for the direentry structure for free...
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

13 years agonfs_opendir() switch to using READDIRPLUS3 instead of READDIR3 when reading directo...
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.

13 years agonfs.x: some rpcgen's can not handle multiple union choices for the same arm.
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

13 years agoadd support for opensolaris
Ronnie Sahlberg [Thu, 1 Sep 2011 09:48:42 +0000 (19:48 +1000)] 
add support for opensolaris

13 years agowin32 add build script for visual studio
Ronnie Sahlberg [Tue, 30 Aug 2011 06:03:26 +0000 (16:03 +1000)] 
win32   add build script for visual studio

13 years agoWin32: make the sympols public in a dll
Ronnie Sahlberg [Tue, 30 Aug 2011 05:56:53 +0000 (15:56 +1000)] 
Win32: make the sympols public in a dll

13 years agoWin32: add a libnfs.def file so we can build libraries/dlls
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

13 years agouse vsnprintf() on all platforms, dont special case win32 for vsnprintf and all other...
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

13 years agoWin32: add workaround for lack of vasprintf() and use vsnprintf() on windows on a...
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

13 years agoWIN32: win32 does not have poll()
Ronnie Sahlberg [Sun, 28 Aug 2011 09:48:01 +0000 (19:48 +1000)] 
WIN32:  win32 does not have poll()
add trivial replacement function

13 years agowin32 oncrpc environment needx xdr.h before including auth.h
Ronnie Sahlberg [Sun, 28 Aug 2011 09:46:12 +0000 (19:46 +1000)] 
win32 oncrpc environment needx xdr.h before including auth.h

13 years agowondows dont have vasprintf()
Ronnie Sahlberg [Sun, 28 Aug 2011 09:45:00 +0000 (19:45 +1000)] 
wondows dont have vasprintf()

disable for now  and reimplement later

13 years agoWin32: more win32 adaptations
Ronnie Sahlberg [Sun, 28 Aug 2011 09:43:33 +0000 (19:43 +1000)] 
Win32: more win32 adaptations

13 years agoVC10 dont like ';;'
Ronnie Sahlberg [Sun, 28 Aug 2011 09:30:10 +0000 (19:30 +1000)] 
VC10 dont like ';;'

13 years agoWin32: the stat structure on win32 does not have blocks or blocksize
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

13 years agoreplace index/rindex with modern equivalents
Ronnie Sahlberg [Sun, 28 Aug 2011 09:27:23 +0000 (19:27 +1000)] 
replace index/rindex with modern equivalents

13 years agoreplace index/rindex with modern equivalents
Ronnie Sahlberg [Sun, 28 Aug 2011 09:27:23 +0000 (19:27 +1000)] 
replace index/rindex with modern equivalents

13 years agonfs_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

13 years agonfs_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

13 years agoWin32 changes, include files we need when compiling under win32
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

13 years agonfs.x: some rpcgen's can not handle multiple union choices for the same arm.
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

13 years agocallit_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

13 years agocallit_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

13 years agobump the configure.ac version to 1.0
Ronnie Sahlberg [Sun, 31 Jul 2011 21:32:08 +0000 (07:32 +1000)] 
bump the configure.ac version to 1.0

13 years agoAdd packaging directory and script and specfile to build RPM packages
Ronnie Sahlberg [Sun, 31 Jul 2011 08:28:09 +0000 (18:28 +1000)] 
Add packaging directory and script and specfile to build RPM packages

13 years agoDont install slist.h or libnfs-private.h
Ronnie Sahlberg [Sun, 31 Jul 2011 08:11:52 +0000 (18:11 +1000)] 
Dont install slist.h or libnfs-private.h

13 years agoInitialize the rootfh handle when creating the nfs context or else
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();

13 years agoAdd automatic reconnect after TCP session failure for the sync interface.
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.

13 years agoMerge pull request #11 from Memphiz/master
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...

13 years ago[fix] - install the raw headers ...
Memphiz [Tue, 19 Jul 2011 18:11:48 +0000 (20:11 +0200)] 
[fix] - install the raw headers ...

13 years agotypo
Ronnie Sahlberg [Mon, 18 Jul 2011 01:49:21 +0000 (11:49 +1000)] 
typo

13 years agoFreeBSD works too
Ronnie Sahlberg [Mon, 18 Jul 2011 00:45:54 +0000 (10:45 +1000)] 
FreeBSD works too

13 years agoAdd cygwin to supported/tested platforms
Ronnie Sahlberg [Sun, 17 Jul 2011 06:45:12 +0000 (16:45 +1000)] 
Add cygwin to supported/tested platforms

13 years agoWe need the same uint64_t workaround for cygwin as we have for OSX
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

13 years agoAdd a flag --enable-tirpc to the configure script
Ronnie Sahlberg [Sun, 17 Jul 2011 06:32:45 +0000 (16:32 +1000)] 
Add a flag --enable-tirpc to the configure script

13 years agosince UDP is unreliable, send the CALLIT broadcasts 3 times, one second apart when...
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

13 years agobreak out the loop for sending a NFSd probe bcast on every interface into a separate...
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

13 years agoMerge pull request #10 from Memphiz/master
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

13 years ago[fix] - fix 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

13 years agoWe have to include config.h when testing for precense of sockaddr sa_len
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

13 years agoOn OSX and other systems where we have sockaddr_in, SIOCGIFCONF returns a packed...
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)

13 years agoMerge pull request #9 from t-nelson/fix_vpath_build
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

13 years agoMerge pull request #8 from t-nelson/update_gitignore
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

13 years agoFix out-of-tree (VPATH) builds
Trent Nelson [Wed, 6 Jul 2011 20:33:00 +0000 (16:33 -0400)] 
Fix out-of-tree (VPATH) builds

13 years agoSimplify examples Makefile
Trent Nelson [Wed, 6 Jul 2011 20:32:08 +0000 (16:32 -0400)] 
Simplify examples Makefile

13 years agoAdd new example bins to .gitignore
Trent Nelson [Wed, 6 Jul 2011 20:37:06 +0000 (16:37 -0400)] 
Add new example bins to .gitignore

13 years agowhen ioctl() for getting the broadcast address fails, continue the loop to the next...
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

13 years agoMerge pull request #7 from Memphiz/master
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

13 years ago- fixed missing include for osx
Memphiz [Sun, 3 Jul 2011 13:25:48 +0000 (15:25 +0200)] 
- fixed missing include for osx

13 years agoadd support got NFSACL protocol and NULL and GETACL procedures.
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

13 years agoadd back a check for sa_len in sockaddr structure.
Ronnie Sahlberg [Sat, 2 Jul 2011 21:41:15 +0000 (07:41 +1000)] 
add back a check for sa_len in sockaddr structure.

13 years agoWith broadcast PDUs we can receive multiple replies so must make sure we
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

13 years agoremove some headers we dont need from the listservers example
Ronnie Sahlberg [Sat, 2 Jul 2011 01:23:50 +0000 (11:23 +1000)] 
remove some headers we dont need from  the listservers example

13 years agoAdd the bcast and the listservers examples to the new build system
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

13 years agoMerge remote branch 't-nelson/automake'
Ronnie Sahlberg [Sat, 2 Jul 2011 01:10:36 +0000 (11:10 +1000)] 
Merge remote branch 't-nelson/automake'

13 years agoPull out changes to Makefile.in so that t-nelsons autobuild changes apply
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

13 years agodocument the find_all_servers function
Ronnie Sahlberg [Sat, 2 Jul 2011 00:33:19 +0000 (10:33 +1000)] 
document the find_all_servers function

13 years agoadd example for sync interface to probe for all local servers
Ronnie Sahlberg [Sat, 2 Jul 2011 00:30:16 +0000 (10:30 +1000)] 
add example for sync interface to probe for all local servers

13 years agocollect nfs servers into a dedicated list and parse this list and print the results...
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

13 years agomake the bcast example use timers and wait for up to 1 second for all
Ronnie Sahlberg [Fri, 1 Jul 2011 23:47:20 +0000 (09:47 +1000)] 
make the bcast example use timers and wait for up to 1 second for all
replies to come back in

13 years agoupdate the bcast example to broadcast on all available ipv4 interfaces
Ronnie Sahlberg [Fri, 1 Jul 2011 23:33:26 +0000 (09:33 +1000)] 
update the bcast example to broadcast on all available ipv4 interfaces
to detect nfs servers on the locally attached networks

13 years agoadd example of broadcast context and broadcasting an RPC call
Ronnie Sahlberg [Fri, 1 Jul 2011 21:36:09 +0000 (07:36 +1000)] 
add example of broadcast context and broadcasting an RPC call

13 years agoRemove log path with arg from configure.
Trent Nelson [Tue, 28 Jun 2011 21:09:00 +0000 (17:09 -0400)] 
Remove log path with arg from configure.

It doesn't seem to be in use anymore?

13 years agoFix example linkage under solaris
Trent Nelson [Tue, 28 Jun 2011 07:54:44 +0000 (03:54 -0400)] 
Fix example linkage under solaris

13 years agoFix compile error on solaris.
Trent Nelson [Tue, 28 Jun 2011 06:19:21 +0000 (02:19 -0400)] 
Fix compile error on solaris.

Include sys/filio.h explicitly as solaris doesn't define BSD_COMP and
thus doesn't pull this header via sys/ioctl.h. Needed for FIONREAD.

13 years agoFix solaris bootstrap.
Trent Nelson [Tue, 28 Jun 2011 06:17:52 +0000 (02:17 -0400)] 
Fix solaris bootstrap.

Solaris automake doesn't have AM_COND_IF yet. It was introduced
in automake 1.10.2.

13 years agoAdd back rpcgen uint64 fix for osx
Trent Nelson [Tue, 28 Jun 2011 07:10:25 +0000 (03:10 -0400)] 
Add back rpcgen uint64 fix for osx

13 years agoHandle versioning the libtool way.
Trent Nelson [Sat, 25 Jun 2011 18:21:54 +0000 (14:21 -0400)] 
Handle versioning the libtool way.

13 years agoRewrite build system using automake
Trent Nelson [Fri, 24 Jun 2011 21:23:43 +0000 (17:23 -0400)] 
Rewrite build system using automake

Initial commit, only linux tested so far.

13 years agowhen destroying a udp rpc context, free any udp_dest data we may have
Ronnie Sahlberg [Sun, 26 Jun 2011 08:58:54 +0000 (18:58 +1000)] 
when destroying a udp rpc context, free any udp_dest data we may have

13 years agoadd a function for portmap/callit
Ronnie Sahlberg [Sun, 26 Jun 2011 08:52:03 +0000 (18:52 +1000)] 
add a function for portmap/callit
for the low level raw interface

13 years agoindentation change in portmap.x
Ronnie Sahlberg [Sun, 26 Jun 2011 08:48:53 +0000 (18:48 +1000)] 
indentation change in portmap.x

13 years agofor portmap callit, change call_args and rell_result to prefix them with pmap_
Ronnie Sahlberg [Sun, 26 Jun 2011 08:47:33 +0000 (18:47 +1000)] 
for portmap callit, change call_args and rell_result to prefix them with pmap_
to avoid polluting the namespace too bad

13 years agoadd function to extract the sockaddr from which we received the current rpc pdu
Ronnie Sahlberg [Sun, 26 Jun 2011 08:45:38 +0000 (18:45 +1000)] 
add function to extract the sockaddr from which we received the current rpc pdu
(useful when parsing replies from broadcast rpc calls)

13 years agoadd function to set the target for UDP rpc calls.
Ronnie Sahlberg [Sun, 26 Jun 2011 08:42:53 +0000 (18:42 +1000)] 
add function to set the target for UDP rpc calls.
including doing broadcast calls

13 years agoadd function to bind a udp rpc context to a local port/address
Ronnie Sahlberg [Sun, 26 Jun 2011 08:40:00 +0000 (18:40 +1000)] 
add function to bind a udp rpc context to a local port/address

13 years agochange the portmapper structure 'mapping' to 'pmap_mapping'
Ronnie Sahlberg [Sun, 26 Jun 2011 08:35:01 +0000 (18:35 +1000)] 
change the portmapper structure 'mapping' to 'pmap_mapping'
so we dont pollute the namespace when not needed

13 years agoDont allow a tcp _connect to a UDP context
Ronnie Sahlberg [Sun, 26 Jun 2011 08:32:06 +0000 (18:32 +1000)] 
Dont allow a tcp _connect to a UDP context

13 years agoadd capability to read UDP datagrams from the socket and pass them to the parser
Ronnie Sahlberg [Sun, 26 Jun 2011 08:30:26 +0000 (18:30 +1000)] 
add capability to read UDP datagrams from the socket and pass them to the parser

13 years agoadd a sockaddr_storage so we can store the socket UPD packets came in from
Ronnie Sahlberg [Sun, 26 Jun 2011 08:29:49 +0000 (18:29 +1000)] 
add a sockaddr_storage so we can store the socket UPD packets came in from

13 years agofor UDP sockets, we ONLY wait for pollin events
Ronnie Sahlberg [Sun, 26 Jun 2011 08:26:34 +0000 (18:26 +1000)] 
for UDP sockets, we ONLY wait for pollin events
since upd sockets are always writeable.
they just silently drop packets when congested

13 years agoadd support for sending and receiving udp pdu
Ronnie Sahlberg [Sun, 26 Jun 2011 08:24:24 +0000 (18:24 +1000)] 
add support for sending and receiving udp pdu

13 years agoadd a sockaddr_storage to the rpc context so we can store the socket a upd packet...
Ronnie Sahlberg [Sun, 26 Jun 2011 08:22:45 +0000 (18:22 +1000)] 
add a sockaddr_storage to the rpc context so we can store the socket a upd packet came in from

13 years agoadd a 'is broadcast' flag to the rpc context structure
Ronnie Sahlberg [Sun, 26 Jun 2011 08:18:59 +0000 (18:18 +1000)] 
add a 'is broadcast' flag to the rpc context structure
this is used for broadcast udp rpc calls (==pormatp/callit)

13 years agoin allocate pdu, if context is udp, dont allocate space for a record marker
Ronnie Sahlberg [Sun, 26 Jun 2011 07:30:00 +0000 (17:30 +1000)] 
in allocate pdu, if context is udp, dont allocate space for a record marker

13 years agoadd function to request a UDP context
Ronnie Sahlberg [Sun, 26 Jun 2011 07:27:40 +0000 (17:27 +1000)] 
add function to request a UDP context
(private use only since we dont want applications to use UDP)

13 years agoadd rpc_context field to track if a UDP connection was requested
Ronnie Sahlberg [Sun, 26 Jun 2011 07:17:59 +0000 (17:17 +1000)] 
add rpc_context field to track if a UDP connection was requested

13 years agoadd test reading from non-0 offset to the sync api example
Ronnie Sahlberg [Sat, 25 Jun 2011 05:05:50 +0000 (15:05 +1000)] 
add test reading from non-0 offset to the sync api example

13 years agoadd RPC definition for the portmapper/callit function
Ronnie Sahlberg [Sat, 25 Jun 2011 03:59:12 +0000 (13:59 +1000)] 
add RPC definition for the portmapper/callit function

13 years agoredo the previous patch to instead initialize max_offset correctly before we invoke...
Ronnie Sahlberg [Sat, 25 Jun 2011 02:23:52 +0000 (12:23 +1000)] 
redo the previous patch to instead initialize max_offset correctly before we invoke the chunks.

this is the correct way to fix this bug.

13 years agohandle the case where we try a multi-read that is completely beyond the end of file.
Ronnie Sahlberg [Sat, 25 Jun 2011 02:13:11 +0000 (12:13 +1000)] 
handle the case where we try a multi-read that is completely beyond the end of file.

when a multi-read was completely beyond the end of file, this caused us to invoke the callback with a 'read-count' of <0  which the callback would treat as a failure.
This would then cause the callback to treat the data pointer as an error string and try to use it for nfs_set_error().
Since the data pointer was actually a real binary databuffer and not an error string this would cause the NFS error string to look like it contained garbage data.

In this case, where the multi-read fails to read any data at all since it if fully beyond end of file,  make sure to invoke the callback with a read-count of 0

13 years agofix crash in mount/export
Ronnie Sahlberg [Sat, 25 Jun 2011 01:06:53 +0000 (11:06 +1000)] 
fix crash in mount/export

need to check that status is OK before we start dereferencing the 'export' pointers or else we will segv.
this could happen if trying to pull the list of exports from a host that does not have mountd running, or if we can not connect at all to the host.

13 years agoAdd a very subtle bug in nfs_set_error()
Ronnie Sahlberg [Tue, 21 Jun 2011 08:33:50 +0000 (18:33 +1000)] 
Add a very subtle bug in nfs_set_error()
when nfs_set_error is called with error_string being the result of a lower layer
problem so it is passed as "rpc_get_error()"

This meant that since free that nfs->rpc->error_string before we reference it a few lines further down in the vasprintf(..., error_string,
adn memory corruption triggers.

Valgrind found this, Valgrind rules!

13 years agoWhen doping chunked multi-reads of a blob bigger than the max readsize,
Ronnie Sahlberg [Mon, 20 Jun 2011 20:07:29 +0000 (06:07 +1000)] 
When doping chunked multi-reads of a blob bigger than the max readsize,
a read can sometimes span beyond the end of file.

In which case individual smal read chunks beyond the end of file will return OK, 0 bytes of data and EOF==1

For this case, trap when len==0 and ignore these chunks.
Do not update the read-count if / when len is 0.

13 years agoFrom Paul van der Zwan
Ronnie Sahlberg [Sun, 19 Jun 2011 15:02:48 +0000 (01:02 +1000)] 
From Paul van der Zwan

Set the directory bit in st_mode properly.

13 years agoRedo the buffer handling for input buffers and make sure we only read one PDU at...
Ronnie Sahlberg [Sun, 19 Jun 2011 14:56:47 +0000 (00:56 +1000)] 
Redo the buffer handling for input buffers and make sure we only read one PDU at a time