summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* nfs-utils: clean up handling of libgssglue in gssd MakefileChuck Lever2009-03-162-8/+8
| | | | | | | | | | | | | | | | From: Jeff Layton <jlayton@redhat.com> Make the pkgconfig check for libgssglue conditional on tirpc being enabled. When it's disabled, the pkgconfig check for librpcsecgss will pull in the gssglue lib and include dir automatically. Also, make sure we include GSSGLUE_CFLAGS and the GSSGLUE_LIBS to the appropriate places in utils/gssd/Makefile.am so that we pick up the gssglue libs when tirpc is enabled. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: Include legacy or TI-RPC headers, not bothChuck Lever2009-03-169-56/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Data type incompatibilities between the legacy RPC headers and the TI-RPC headers mean we can't use libtirpc with code that was compiled against the legacy RPC headers. The definition of rpcprog_t for example is "unsigned long" in the legacy library, but it's "uint32_t" for TI-RPC. On 32-bit systems, these types happen to have the same width, but on 64-bit systems they don't, making more complex data structures that use these types in fields ABI incompatible. Adopt a new strategy to deal with this issue. When --enable-tirpc is set, append "-I/usr/include/tirpc" to the compilation steps. This should cause the compiler to grab the tirpc/ headers instead of the legacy headers. Now, for TI-RPC builds, the TI-RPC legacy functions and the TI-RPC headers will be used. On legacy systems, the legacy headers and legacy glibc RPC implementation will be used. A new ./configure option is introduced to allow system integrators to use TI-RPC headers in some other location than /usr/include/tirpc. /usr/include/tirpc remains the default setting for this new option. The gssd implementation presents a few challenges, but it turns out the gssglue library is similar to the auth_gss pieces of TI-RPC. To avoid similar header incompatibility issues, gssd now uses libtirpc instead of libgssglue if --enable-tirpc is specified. There may be other issues to tackle with gssd, but for now, we just make sure it builds with --enable-tirpc. Note also: svc_getcaller() is a macro in both cases that points to a sockaddr field in the svc_req structure. The legacy version points to a sockaddr_in type field, but the TI-RPC version points to a sockaddr_in6 type field. rpc.mountd unconditionally casts the result of svc_getcaller() to a sockaddr_in *. This should be OK for TI-RPC as well, since rpc.mountd still uses legacy RPC calls (provided by glibc, or emulated by TI-RPC) to set up its listeners, and therefore rpc.mountd callers will always be from AF_INET addresses for now. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* configure: move IPv6 feature checks into aclocalChuck Lever2009-03-163-16/+33
| | | | | | | | Clean up: for consistency with other local feature checks, move IPv6 feature checks into aclocal/ Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: don't need extra libs to do AC_CHECK_LIBS for librpcsecgssChuck Lever2009-03-161-5/+3
| | | | | | | | | | From: Jeff Layton <jlayton@redhat.com> The conftest should work without these extra libs being included. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* configure: Move rpcsecgss checking into aclocalChuck Lever2009-03-164-16/+35
| | | | | | | | Clean up: Introduce two more aclocal scripts for handling rpcsecgss dependency checking. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* configure: pull common nfsidmap and event checks into aclocal/Chuck Lever2009-03-164-11/+41
| | | | | | | | | Clean up: Create an aclocal script for the nfsidmap library and headers checks used for both --enable-gss and --enable-nfsv4. Move libevent checks out too. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: replace function-specific switches with HAVE_LIBTIRPCChuck Lever2009-03-163-48/+43
| | | | | | | | | | | | | Instead of switching in TI-RPC-specific logic with a function-specific switch like HAVE_CLNT_VG_CREATE, let's use the more generic HAVE_LIBTIRPC macro everywhere. This simplifies ./configure (always a good thing), and makes it more clear in the source code exactly what the extra conditionally compiled code is for. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* configure: move TI-RPC checks into aclocalChuck Lever2009-03-163-20/+36
| | | | | | | | | | | | Define an aclocal test for TI-RPC headers and library, and move the TI-RPC checks earlier in our configure script so other feature checks can use the availability of TI-RPC to decide what to do. Since bindresvport_sa is required just for IPv6 support, move that check to the IPv6 feature tests. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* configure: add defensive quoting in some function checksChuck Lever2009-03-161-11/+14
| | | | | | | | Clean up: Add proper m4 quoting in macros that check for the presence of some functions in configure.ac. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* Added back the some logging variables which are noSteve Dickson2009-03-081-1/+9
| | | | | | | | | longer used but, unfortunately, they are extern-ed by public headers files which are not under the control of this package. Spotted-by: Juergen Daubert <jue@jue.li> Signed-off-by: Steve Dickson <steved@redhat.com>
* Release 1.1.5Steve Dickson2009-03-051-1/+1
| | | | Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: include gssapi/gssapi.h before write_bytes.hChuck Lever2009-03-051-3/+3
| | | | | | | | | | | | | | | | | | In gssd/context_lucid.c, ensure that gss_buffer_desc and gss_OID_desc are defined before write_bytes.h, which uses these definitions, is included. With TI-RPC, these definitions are not provided by rpc/rpc.h. It appears that <gssapi/gssapi_krb5.h> already includes krb5.h and gssapi.h (on my system, anyway) so let's drop those includes. Ideally write_bytes.h itself should include the needed headers, but some source files that use Heimdal include a different, Heimdal- compatible, header to get these definitions. Pointed-out-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* gssd: Use same style for including config.h that rest of nfs-utils usesChuck Lever2009-03-0517-11/+66
| | | | | | | Clean up. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* mount.nfs: squelch compiler warning for TI-RPC buildsChuck Lever2009-03-051-2/+3
| | | | | | | | | | | | | | | | | | | | | | The printf format string in nfs_pp_debug() assumes the @program and @version arguments are unsigned long, because the legacy RPC headers define both rpcprog_t and rpcvers_t as unsigned long types. However, the TI-RPC headers define both types as uint32_t, which requires a different printf format type. If we replace the legacy headers with TI-RPC headers, this type mismatch generates compiler warnings that are nothing but noise. We are about to provide a switch at ./configure time to allow the use of either the legacy RPC headers or the TI-RPC headers, so we need a printf format that works in both cases. To squelch the compiler warnings that occur when using the TI-RPC headers, cast both arguments in the fprintf statement to the widest of the two types ("unsigned long" or "uint32_t"). Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: Provide type-checked version of svc_getcaller()Chuck Lever2009-03-057-24/+44
| | | | | | | | | | | | | TI-RPC's version of the svc_getcaller() macro points to a sockaddr_in6, not a sockaddr_in, though for AF_INET callers, an AF_INET address resides there. To squelch compiler warnings when the TI-RPC version of the svc_req structure is used, add inline helpers with appropriate type casting. Note that tcp_wrappers support only AF_INET addresses for now. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* configure: Remove CPPFLAGS substitutionChuck Lever2009-03-051-1/+0
| | | | | | | | | At least on my systems, the AM_CPPFLAGS substitution at the end of configure.ac is not needed. It adds an extra copy of "-I../../support/includes" to each compile step. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: Replace getservbyname(3)Chuck Lever2009-03-053-94/+63
| | | | | | | | | The getservbyname(3) function is not re-entrant, and anyway, the man page says it is obsolete. Replace it with a call to getaddrinfo(3). Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* Update example in exports(5) man pageValerie Aurora Henson2009-03-041-1/+1
| | | | | Signed-off-by: Valerie Aurora Henson <vaurora@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* Have sizeof using the correct value in nfs_getlocalport()Ben Greear2009-03-041-1/+1
| | | | | Signed-off-by: Ben Greear <greearb@candelatech.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: Remove fprintf() call from support/nfs/getport.cChuck Lever2009-03-041-3/+0
| | | | | | | | getport.c is effectively a library, so it should not be emitting messages via printf. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* showmount command: remove legacy RPC logicChuck Lever2009-03-041-141/+0
| | | | | | | | | Turns out both legacy RPC and TI-RPC have a clnt_create(3) API. So there's really no need to keep the old open-coded transport logic around. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs(5): document new [no]resvport optionChuck Lever2009-03-041-0/+14
| | | | | | | Kernel 2.6.25 deprecates intr/nointr. Reflect this change in nfs(5). Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs(5): document new [no]resvport optionChuck Lever2009-03-041-0/+66
| | | | | | | | Kernel 2.6.28 adds a new mount option: [no]resvport. Document the new option in the nfs(5) man page. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* The legacy version of nfs_name_to_address() returned an incorrectChuck Lever2009-03-041-1/+1
| | | | | | | value for the size of the returned address. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* configure: fix AC_CACHE_VAL warnings on Fedora 10Chuck Lever2009-03-042-8/+7
| | | | | | | | | | | | | | | | | Autoconf 2.63 (and maybe earlier releases) complains about the cache variable name used in aclocal/libblkid.m4: configure.ac:217: warning: AC_CACHE_VAL(libblkid_is_recent, ...): suspicious cache-id, must contain _cv_ to be cached ../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from... aclocal/libblkid.m4:2: AC_BLKID_VERS is expanded from... configure.ac:217: the top level This addresses https://bugzilla.redhat.com/attachment.cgi?bugid=481386 . Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* General clean up. Removed unused routines. Reworked syslogSteve Dickson2009-03-041-130/+5
| | | | | | | | message to (hopefully) make it more sensible. Move "#ifdef HAVE_LIBWRAP" around so nothing will be defined when tcp wrapper is not configured. Signed-off-by: Steve Dickson <steved@redhat.com>
* Converted good_client() to correctly use the tcp wrapperSteve Dickson2009-03-042-51/+10
| | | | | | | interface and added a note to the mountd man page saying hostnames will be ignored when they can not be looked up. Signed-off-by: Steve Dickson <steved@redhat.com>
* Only hash on IP address and Program number. Including the ProcedureSteve Dickson2009-03-041-12/+11
| | | | | | number only creates needles extra hash entries. Signed-off-by: Steve Dickson <steved@redhat.com>
* Exportfs and rpc.mountd optimalizationTomas Richter2009-02-188-41/+113
| | | | | | | | | | | | | | | | | | | | | | | | There were some problems with exportfs and rpc.mountd for long export lists - see https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=76643 I do optimalization as my bachelors thesis (Facuulty of informatics, Masaryk's university Brno, Czech Republic), under lead of Yenya Kasprzak. Both exportfs and rpc.mount build linked list of exports (shared functions in export.c). Every time they are inserting new export into list, they search for same export in list. I replaced linked list by hash table and functions export_add and export_lookup by functions hash_export_add and hash_export_lookup (export.c). Because some other functions required exportlist as linked list, hash table has some implementation modification im comparison with ordinary hash table. It also keeps exports in linked list and has pointer to head of the list. So there's no need of implementation function <for_all_in_hash_table>. Signed-off-by: Tomas Richter <krik3t@gmail.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* rpc.idmapd should tell the user more verbosely if DnotifyLukas Hejtmanek2009-02-181-2/+4
| | | | | | | support is missing in kernel. Signed-off-by: Lukas Hejtmanek <xhejtman@ics.muni.cz> Signed-off-by: Steve Dickson <steved@redhat.com>
* umount command: remove do_nfs_umount23 functionChuck Lever2009-02-171-93/+0
| | | | | | | Remove do_nfs_umount23() now that it is unused. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* umount.nfs command: Support AF_INET6 server addressesChuck Lever2009-02-171-4/+99
| | | | | | | | | | | | | | | | | | | | | | | Replace existing mount option parser in nfsumount.c with the new pmap stuffer function nfs_options2pmap(). Mount option parsing for umount.nfs now works the same as it does for mount option rewriting in the text-based mount.nfs command. This adds a number of new features: 1. The new logic supports resolving AF_INET6 server addresses 2. Support is added for the recently introduced "mountaddr" option. 3. Parsing numeric option values is much more careful 4. Option parsing no longer uses xmalloc/xstrdup, so it won't fail silently if memory can't be allocated 5. Mount program number set in /etc/rpc is respected 6. Mount doesn't exit with EX_USAGE if the hostname lookup fails Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* umount.nfs command: Add an AF_INET6-capable version of nfs_call_unmount()Chuck Lever2009-02-172-1/+56
| | | | | | | | | | | | | | | | | | We need an AF_INET6-capable version of nfs_call_unmount() to allow the umount.nfs command to support unmounting NFS servers over IPv6. The legacy mount.nfs command still likes to use nfs_call_umount(), so we leave it in place and introduce a new API that can take a "struct sockaddr *". The umount.nfs command will invoke this new API, but we'll leave the legacy mount.nfs command and the umount.nfs4 command alone. The umount.nfs4 command does not need this support because NFSv4 unmount operations are entirely local. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* nfs-utils: git should ignore cscope.* filesChuck Lever2009-02-171-0/+2
| | | | | | | Tell git to ignore cscope database files. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* The mount sockaddr len (mnt_salen) is not be set inSteve Dickson2009-02-171-2/+3
| | | | | | | | nfs_extract_server_addresses() which causes the mount.nfs command to segmentation fault when a NFS server only supports UDP mounts. Signed-off-by: Steve Dickson <steved@redhat.com>
* text-based mount command: fix return value from po_rightmost()Chuck Lever2009-02-174-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recently commit 0dcb83a8 changed the po_rightmost() function to distinguish among several possible mount options by taking a table containing the alternatives, and returning the table index of the entry which is rightmost in the mount option string. If it didn't find any mount option that matches an entry from the passed-in table, it returned zero. This was the same behavior it had before, when it only checked for two options at a time. It returned PO_NEITHER_FOUND, which was zero. Since this is C, however, zero also happens to be a valid index into the passed-in array of options. Modify the po_rightmost() function to return -1 if the entry wasn't found, and fix up the callers to look for a C-style array index that starts at zero. Thanks to Steve Dickson for troubleshooting the problem. His solution was merely to bump the return value, as callers already expected an ordinal index instead of a C-style index. I prefer this equivalent but slightly more extensive change because it makes the behavior of po_rightmost() more closely match how humans understand C arrays to work. Let's address some of the confusion that caused this bug, as well as fixing the run-time behavior. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* text-based mount command: support AF_INET6 in rewrite_mount_options()Chuck Lever2009-01-271-25/+49
| | | | | | | | | | Now that we have an AF_INET6-capable probe_bothports(), we can support AF_INET6 when rewriting text-based NFS mount options. This should be adequate to support NFS transport protocol and version negotiation with AF_INET6 NFS servers. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* text-based mount command: fix mount option rewriting logicChuck Lever2009-01-271-34/+79
| | | | | | | Fix a bunch of corner cases in the text-based mount option rewriting logic. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* text-based mount options: Use new pmap stuffer when rewriting mount optionsChuck Lever2009-01-271-63/+5
| | | | | | | | | | | all nfs_options2pmap() in nfs_rewrite_mount_options() instead of open-coding the logic to convert mount options to a pmap struct. The new nfs_options2pmap() function is more careful about avoiding invalid mount option values, and handles multiply-specified transport protocol options correctly. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* text-based mount command: Function to stuff "struct pmap" from mount optionsChuck Lever2009-01-272-0/+219
| | | | | | | | | Both the text-based mount.nfs command and the umount.nfs command need to fill in a pmap structure based on string mount options. Introduce a shared function that can do this. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* text-based mount command: make po_rightmost() work for N optionsChuck Lever2009-01-273-24/+41
| | | | | | | | | | | Sometimes we need to choose the rightmost option among multiple different mount options. For example, we want to find the rightmost of "proto," "tcp," and "udp". Or, the rightmost of "vers," "nfsvers," "v2," and "v3". Update po_rightmost() to choose among N options instead of just two. Signed-off-by: Steve Dickson <steved@redhat.com>
* showmount command: Quiesce warning when TI-RPC is disabledChuck Lever2009-01-071-7/+7
| | | | | | | | | | Make sure nfs_sm_pgmtbl is not compiled if TI-RPC functions are not available. This quiesces the following compiler warning: showmount.c:53: warning: nfs_sm_pgmtbl defined but not used Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* configure: Add new build option "--enable-tirpc"Chuck Lever2009-01-071-8/+22
| | | | | | | | | | | | | | | | | | | | | | Allow easier testing of nfs-utils in legacy environments by providing a "configure" option to force the build not to use libtirpc, even if it's present on the build system. This can also be tried as a fallback if problems are found with the new TI-RPC-based nfs-utils code. The new option is: --enable-tirpc enable use of TI-RPC [default=no] Build option matrix: --disable-tirpc --disable-ipv6 Default; IPv4 only, glibc RPC --disable-tirpc --enable-ipv6 'configure' will fail --enable-tirpc --disable-ipv6 IPv4 only, TI-RPC --enable-tirpc --enable-ipv6 IPv4 and IPv6, TI-RPC Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* configure: Remove inet_ntop(3) check from configure.acChuck Lever2009-01-071-3/+1
| | | | | | | | nfs-utils no longer uses inet_ntop(3) so remove checks for it from configure.ac. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
* Merge branch 'master' of git://linux-nfs.org/nfs-utilsSteve Dickson2009-01-073-31/+127
|\
| * configure: use "--disable-uuid" instead of "--without-uuid"Chuck Lever2009-01-061-1/+1
| | | | | | | | | | | | | | | | | | Reported by Kevin Coffman and Jonathan Andrews. Apparently --without-uuid doesn't work with some older versions of autoconf, so correct the help text to document the option that actually does the trick. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
| * mount command: Random clean upChuck Lever2009-01-062-2/+3
| | | | | | | | | | | | | | Fix some documenting comments and an error message in configure.ac. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
| * mount: getport: don't use getaddrinfo(3) on old systemsChuck Lever2009-01-061-10/+59
| | | | | | | | | | | | | | | | | | Older glibc versions have a getaddrinfo(3) that doesn't support AI_ADDRCONFIG. Detect that case and build something else for getport.c that will work adequately on those systems. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
| * mount command: use gethostbyname(3) when building on old systemsChuck Lever2009-01-062-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Glibc's getaddrinfo(3) implementation was added over time. Some old versions support AI_ADDRCONFIG, but don't define it in header files. Some older versions don't support AI_ADDRCONFIG at all. Let's add specific checks to configure.ac to see that the local getaddrinfo(3) implementation is complete. If it isn't, we will make available a resolver that uses gethostbyname(3) and disable IPv6 entirely. This patch should apply to 1.1.4 as well as the current nfs-utils repo. The next patch has a fix for the getaddrinfo(3) call added since 1.1.4 in support/nfs/getport.c. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
| * mount: revert recent fix for build problems on old systemsChuck Lever2009-01-061-18/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert the patch that added local definitions of AI_ADDRCONFIG and friends to utils/mount/network.c. While old header versions don't have those flags, even older versions of getaddrinfo(3) don't support those flags at all. The result is this error: mount.nfs: DNS resolution failed for 10.10.10.10: Bad value for ai_flags Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>