Commit Graph

214 Commits (de9e123099205855b6214d3c20174c4ba1400d1a)

Author SHA1 Message Date
Ronnie Sahlberg aab6538bbd Implement 'rejected_reply' and switch to RFC5531 definitions
Switch to using fields and names from RFC5531. that is the standard
for RPC.
2012-11-26 19:42:10 -08:00
Ronnie Sahlberg f3a7507806 Add an assert to track if we try to use an rpc_context after it has been destroyed 2012-11-24 08:18:54 -08:00
Ronnie Sahlberg 442b829a05 Dont just cast *enum_t to *uint32_t
go via a temporary variable in case these scalars are different size
2012-07-05 21:13:04 +10:00
Ronnie Sahlberg 67ba2239cb Get rid of AUTH completely and replace all uses with 'struct AUTH' 2012-07-05 10:23:19 +10:00
Ronnie Sahlberg 45670bd0d6 fix compiler warnings 2012-07-05 07:37:37 +10:00
Ronnie Sahlberg d14e28387f squelch compiler warnings in socket.c about integer sizes 2012-07-05 07:21:48 +10:00
Ronnie Sahlberg 763cd6e3e2 ZDR: New builtin replacement for RPC/XDR called ZDR
This patch switches libnfs over to use precompiled rpcgen files
and using ZDR.  ZDR is a trivial reimplementation of XDR that is built in
into libnfs.

This removes the dependencies of rpc/xdr completely and allow us to build on any
system, even systems where rpcgen and librpc/libxdr are not generally available.
2012-07-04 16:53:12 +10:00
Ronnie Sahlberg a171d4dada NLM add helper functions to send async calls for the NLM functions 2012-03-10 22:50:10 +11:00
Ronnie Sahlberg e01ed6a239 NLM add TEST procedure 2012-03-10 21:38:29 +11:00
Ronnie Sahlberg 6916a66546 NLM: initial support for NLM 2012-03-10 20:46:03 +11:00
Ronnie Sahlberg 0118a5f0de GETACL: change the signature for the raw getacl3 function to take GETACL3args pointer instead of a discrete arguments 2012-03-08 22:52:20 +11:00
Ronnie Sahlberg fa3c25beee NFSACL: Add support for SETACL3 2012-03-08 21:25:21 +11:00
Ronnie Sahlberg 8e25581668 change rpc_nfs_symlink_async to take a full SYMLINK3args as parameter 2012-01-14 08:18:19 +11:00
Ronnie Sahlberg 16104b27bd make low level readlink_async function take READLINK3args as argument 2012-01-14 08:11:09 +11:00
Ronnie Sahlberg 7edc9026db make mkdir_async take a full MKDIR3args argument 2012-01-12 16:02:32 +11:00
Ronnie Sahlberg c985c015f2 change crate_async low level function to take a full RATE3args structure as argument instead of just name and mode 2012-01-12 15:31:49 +11:00
Ronnie Sahlberg b426ef0404 read returns a READ3res, not a ACCESS3res 2012-01-12 15:19:45 +11:00
Ronnie Sahlberg 8724c83390 Add function to get root filehandle from a nfs context 2012-01-11 07:04:01 +11:00
Ronnie Sahlberg 1fbe408023 PORTMAPPER: Add set/unset functions 2011-12-31 15:01:38 +11:00
Ronnie Sahlberg 5c6b1176c2 PMAP: allow to ask for tcp/udp port, dont assume users only ever want the tcp port 2011-12-31 14:24:20 +11:00
Ronnie Sahlberg 183451cff5 Remove all [s]size_t / off_t and replace with [u]int64_t making libnfs 64-bit pure 2011-11-27 14:49:08 +11:00
Ronnie Sahlberg 1ec6b50aef Add MKNOD command support
Add support for raw nfs3 mknod  and sync and async posixlike api
2011-11-27 14:08:24 +11:00
Ronnie Sahlberg 8704724f83 Change remaining "struct AUTH *" to "AUTH *" 2011-10-09 15:22:05 +11:00
Memphiz fa33813ed4 [fix] - fix improper definition of struct AUTH from osx (caution - API change - not clear if typedef is there on all plattforms...) 2011-10-08 18:10:06 +02:00
Ronnie Sahlberg d678b73e4d Fragment reassembly. Add reassembly of fragmented RPC PDUs 2011-10-04 12:31:56 +11:00
Ronnie Sahlberg 1744ef9011 Autoreconnect: autoreconnect was completely broken. Reimplement it so that it reconnects properly on session failure. 2011-10-04 11:25:10 +11:00
Ronnie Sahlberg 762621fa3d Donr declate AUTH as a struct in libnfs.h
make it include rpc/auth.h properly instead
2011-09-19 20:23:45 +10:00
Ronnie Sahlberg 83aa785d92 Add a call to find the queue-length so we can see how many I/O we have in flight from the application layer. 2011-09-11 21:32:48 +10:00
Ronnie Sahlberg 41d82d7d82 Merge branch 'win32' into win32-3 2011-09-03 10:57:42 +10:00
Ronnie Sahlberg 0804e67d7a using READDIRPLUS3 we get some extra fields for the direentry structure for free, such as type, mode, size, timestamps 2011-09-02 20:45:30 +10:00
Ronnie Sahlberg f390f18157 nfs_opendir() switch to using READDIRPLUS3 instead of READDIR3 when reading directories. 2011-09-02 20:27:01 +10:00
Ronnie Sahlberg 66ad6d8438 Win32: make the sympols public in a dll 2011-08-30 15:56:53 +10:00
Ronnie Sahlberg dd8fc17555 win32 oncrpc environment needx xdr.h before including auth.h 2011-08-28 19:46:12 +10:00
Ronnie Sahlberg eecdc4f3cd Win32 changes, include files we need when compiling under win32
and some socket ops are slightly different
2011-08-28 19:24:18 +10:00
Ronnie Sahlberg b84208a613 Dont install slist.h or libnfs-private.h 2011-07-31 18:29:10 +10:00
Ronnie Sahlberg b077fdeb65 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.
2011-07-31 10:49:47 +10:00
Memphiz 4431432424 [fix] - install the raw headers ... 2011-07-19 20:12:31 +02:00
Ronnie Sahlberg 3847f8f6ae add support got NFSACL protocol and NULL and GETACL procedures.
add example of raw interface for NFSACL
2011-07-03 15:30:18 +10:00
Ronnie Sahlberg 2e4db0d145 Merge remote branch 't-nelson/automake' 2011-07-02 11:10:36 +10:00
Ronnie Sahlberg 9c4212bf55 document the find_all_servers function 2011-07-02 10:33:19 +10:00
Ronnie Sahlberg 552c766578 add example for sync interface to probe for all local servers 2011-07-02 10:30:16 +10:00
Trent Nelson 6c437065d3 Rewrite build system using automake
Initial commit, only linux tested so far.
2011-06-29 14:15:16 -04:00
Ronnie Sahlberg fd59fd0da3 add a function for portmap/callit
for the low level raw interface
2011-06-26 18:52:03 +10:00
Ronnie Sahlberg c481da67f2 add function to extract the sockaddr from which we received the current rpc pdu
(useful when parsing replies from broadcast rpc calls)
2011-06-26 18:45:38 +10:00
Ronnie Sahlberg 5bf60dc601 add function to set the target for UDP rpc calls.
including doing broadcast calls
2011-06-26 18:42:53 +10:00
Ronnie Sahlberg 485bc9b9a7 add function to bind a udp rpc context to a local port/address 2011-06-26 18:40:00 +10:00
Ronnie Sahlberg 2d0c44ced1 add a sockaddr_storage so we can store the socket UPD packets came in from 2011-06-26 18:29:49 +10:00
Ronnie Sahlberg a9b241622f add a sockaddr_storage to the rpc context so we can store the socket a upd packet came in from 2011-06-26 18:22:45 +10:00
Ronnie Sahlberg 2ae460667b add a 'is broadcast' flag to the rpc context structure
this is used for broadcast udp rpc calls (==pormatp/callit)
2011-06-26 18:18:59 +10:00
Ronnie Sahlberg 9e00b8c663 add function to request a UDP context
(private use only since we dont want applications to use UDP)
2011-06-26 17:27:40 +10:00
Ronnie Sahlberg d16a3ca4bb add rpc_context field to track if a UDP connection was requested 2011-06-26 17:17:59 +10:00
Ronnie Sahlberg cdb19ec164 Redo the buffer handling for input buffers and make sure we only read one PDU at a time 2011-06-20 00:56:47 +10:00
Ronnie Sahlberg e210bd2af8 remove the need for an explicit rpc context for the highlevel function mount_getexports() 2011-06-19 23:20:35 +10:00
Ronnie Sahlberg df5af25fd2 add a sync function to get the export list from a server and add an example of how to use this functio n to nfsclient-sync 2011-06-19 22:31:34 +10:00
Ronnie Sahlberg 7f0242ca9a Add a high-level async function to read the export list 2011-06-19 14:54:17 +10:00
Ronnie Sahlberg 1896d37bfa get rid of all remaining printfs from the library
add a helper function nfs_set_error() to use instead of the printfs
2011-06-19 09:38:20 +10:00
Ronnie Sahlberg e2ba5764d4 Remove the _sync postfix for the synchronous functions 2011-06-18 15:07:53 +10:00
Ronnie Sahlberg 77c23b46c0 Add support for version 2 of the rquota protocol 2011-06-02 22:16:42 +10:00
Ronnie Sahlberg 19e74f5a32 Add RQUOTA1/GETACTIVEQUOTA call to the raw low level API 2011-06-02 22:06:25 +10:00
Memphis d6ced294d8 - refactored parametername from reserved keyword "export" to "exportname" 2011-06-01 18:05:18 +02:00
Ronnie Sahlberg 05a777d98a Initial support for RQUOTA protocol 2011-06-01 20:55:27 +10:00
Ronnie Sahlberg 17ef62fad7 Read the max read/write sizes supported when connecting to NFS
and store in the nfs context.
Privide accessor functions to read the max sizes.
2011-06-01 00:08:29 +10:00
Ronnie Sahlberg 1058201ef0 Add support for async version of NFS/FSINFO3 call 2011-05-31 23:50:18 +10:00
Ronnie Sahlberg 84004dbf9b initial libnfs checkin 2011-02-06 15:45:09 +11:00