diff options
-rw-r--r-- | aclocal/librpcsecgss.m4 | 17 | ||||
-rw-r--r-- | aclocal/libtirpc.m4 | 10 | ||||
-rw-r--r-- | aclocal/rpcsec_vers.m4 | 7 | ||||
-rw-r--r-- | support/nfs/getport.c | 4 | ||||
-rw-r--r-- | support/nfs/rpc_socket.c | 45 | ||||
-rw-r--r-- | utils/gssd/gssd_proc.c | 3 | ||||
-rw-r--r-- | utils/gssd/krb5_util.c | 1 | ||||
-rw-r--r-- | utils/gssd/krb5_util.h | 6 | ||||
-rw-r--r-- | utils/mountd/svc_run.c | 4 |
9 files changed, 41 insertions, 56 deletions
diff --git a/aclocal/librpcsecgss.m4 b/aclocal/librpcsecgss.m4 index 5791260..d1dd25e 100644 --- a/aclocal/librpcsecgss.m4 +++ b/aclocal/librpcsecgss.m4 @@ -3,12 +3,17 @@ dnl KRB5LIBS must be set before this function is invoked. dnl AC_DEFUN([AC_LIBRPCSECGSS], [ - dnl Check for library, but do not add -lrpcsecgss to LIBS - AC_CHECK_LIB([rpcsecgss], [authgss_create_default], [librpcsecgss=1], - [AC_MSG_ERROR([librpcsecgss not found.])]) + dnl libtirpc provides an rpcsecgss API + if test "$enable_tirpc" = no; then - AC_CHECK_LIB([rpcsecgss], [authgss_set_debug_level], - [AC_DEFINE([HAVE_AUTHGSS_SET_DEBUG_LEVEL], 1, - [Define to 1 if you have the `authgss_set_debug_level' function.])]) + dnl Check for library, but do not add -lrpcsecgss to LIBS + AC_CHECK_LIB([rpcsecgss], [authgss_create_default], [librpcsecgss=1], + [AC_MSG_ERROR([librpcsecgss not found.])]) + + AC_CHECK_LIB([rpcsecgss], [authgss_set_debug_level], + [AC_DEFINE([HAVE_AUTHGSS_SET_DEBUG_LEVEL], 1, + [Define to 1 if you have the `authgss_set_debug_level' function.])]) + + fi ])dnl diff --git a/aclocal/libtirpc.m4 b/aclocal/libtirpc.m4 index b1f3669..af4c7d3 100644 --- a/aclocal/libtirpc.m4 +++ b/aclocal/libtirpc.m4 @@ -2,6 +2,12 @@ dnl Checks for TI-RPC library and headers dnl AC_DEFUN([AC_LIBTIRPC], [ + AC_ARG_WITH([tirpcinclude], + [AC_HELP_STRING([--with-tirpcinclude=DIR], + [use TI-RPC headers in DIR])], + [tirpc_header_dir=$withval], + [tirpc_header_dir=/usr/include/tirpc]) + dnl if --enable-tirpc was specifed, the following components dnl must be present, and we set up HAVE_ macros for them. @@ -12,8 +18,10 @@ AC_DEFUN([AC_LIBTIRPC], [ [AC_MSG_ERROR([libtirpc not found.])]) dnl also must have the headers installed where we expect - AC_CHECK_HEADERS([tirpc/netconfig.h], , + dnl look for headers; add -I compiler option if found + AC_CHECK_HEADERS([${tirpc_header_dir}/netconfig.h], , [AC_MSG_ERROR([libtirpc headers not found.])]) + AC_SUBST([AM_CPPFLAGS], ["-I${tirpc_header_dir}"]) fi diff --git a/aclocal/rpcsec_vers.m4 b/aclocal/rpcsec_vers.m4 index df7cfb9..5d13db3 100644 --- a/aclocal/rpcsec_vers.m4 +++ b/aclocal/rpcsec_vers.m4 @@ -1,8 +1,11 @@ dnl Checks librpcsec version AC_DEFUN([AC_RPCSEC_VERSION], [ - PKG_CHECK_MODULES([RPCSECGSS], [librpcsecgss >= 0.16], , - [AC_MSG_ERROR([Unable to locate information required to use librpcsecgss. If you have pkgconfig installed, you might try setting environment variable PKG_CONFIG_PATH to /usr/local/lib/pkgconfig])]) + dnl TI-RPC replaces librpcsecgss + if test "$enable_tirpc" = no; then + PKG_CHECK_MODULES([RPCSECGSS], [librpcsecgss >= 0.16], , + [AC_MSG_ERROR([Unable to locate information required to use librpcsecgss. If you have pkgconfig installed, you might try setting environment variable PKG_CONFIG_PATH to /usr/local/lib/pkgconfig])]) + fi PKG_CHECK_MODULES([GSSGLUE], [libgssglue >= 0.1]) diff --git a/support/nfs/getport.c b/support/nfs/getport.c index 2255b7d..734d21a 100644 --- a/support/nfs/getport.c +++ b/support/nfs/getport.c @@ -41,8 +41,8 @@ #include <rpc/pmap_prot.h> #ifdef HAVE_LIBTIRPC -#include <tirpc/netconfig.h> -#include <tirpc/rpc/rpcb_prot.h> +#include <netconfig.h> +#include <rpc/rpcb_prot.h> #endif #include "nfsrpc.h" diff --git a/support/nfs/rpc_socket.c b/support/nfs/rpc_socket.c index 4b4b0be..2b11e35 100644 --- a/support/nfs/rpc_socket.c +++ b/support/nfs/rpc_socket.c @@ -41,49 +41,8 @@ #include "nfsrpc.h" #ifdef HAVE_LIBTIRPC - -/* - * Most of the headers under /usr/include/tirpc are currently - * unusable for various reasons. We statically define the bits - * we need here until the official headers are fixed. - * - * The commonly used RPC calls such as CLNT_CALL and CLNT_DESTROY - * are actually virtual functions in both the legacy and TI-RPC - * implementations. The proper _CALL or _DESTROY will be invoked - * no matter if we used a legacy clnt_create() or clnt_tli_create() - * from libtirpc. - */ - -#include <tirpc/netconfig.h> -#include <tirpc/rpc/rpcb_prot.h> - -/* definitions from tirpc/rpc/types.h */ - -/* - * The netbuf structure is used for transport-independent address storage. - */ -struct netbuf { - unsigned int maxlen; - unsigned int len; - void *buf; -}; - -/* definitions from tirpc/rpc/clnt.h */ - -/* - * Low level clnt create routine for connectionless transports, e.g. udp. - */ -extern CLIENT *clnt_dg_create(const int, const struct netbuf *, - const rpcprog_t, const rpcvers_t, - const u_int, const u_int); - -/* - * Low level clnt create routine for connectionful transports, e.g. tcp. - */ -extern CLIENT *clnt_vc_create(const int, const struct netbuf *, - const rpcprog_t, const rpcvers_t, - u_int, u_int); - +#include <netconfig.h> +#include <rpc/rpcb_prot.h> #endif /* HAVE_LIBTIRPC */ /* diff --git a/utils/gssd/gssd_proc.c b/utils/gssd/gssd_proc.c index d0d3f7f..295c37d 100644 --- a/utils/gssd/gssd_proc.c +++ b/utils/gssd/gssd_proc.c @@ -70,7 +70,6 @@ #include "gssd.h" #include "err_util.h" #include "gss_util.h" -#include "gss_oids.h" #include "krb5_util.h" #include "context.h" @@ -778,8 +777,10 @@ handle_krb5_upcall(struct clnt_info *clp) out: if (token.value) free(token.value); +#ifndef HAVE_LIBTIRPC if (pd.pd_ctx_hndl.length != 0) authgss_free_private_data(&pd); +#endif if (auth) AUTH_DESTROY(auth); if (rpc_clnt) diff --git a/utils/gssd/krb5_util.c b/utils/gssd/krb5_util.c index 8923b3b..e3c6f5e 100644 --- a/utils/gssd/krb5_util.c +++ b/utils/gssd/krb5_util.c @@ -124,7 +124,6 @@ #include "gssd.h" #include "err_util.h" #include "gss_util.h" -#include "gss_oids.h" #include "krb5_util.h" /* Global list of principals/cache file names for machine credentials */ diff --git a/utils/gssd/krb5_util.h b/utils/gssd/krb5_util.h index 4b2da6b..7d808f5 100644 --- a/utils/gssd/krb5_util.h +++ b/utils/gssd/krb5_util.h @@ -3,6 +3,12 @@ #include <krb5.h> +#ifdef HAVE_LIBTIRPC +#include <rpc/auth_gss.h> +#else +#include "gss_oids.h" +#endif + /* * List of principals from our keytab that we * will try to use to obtain credentials diff --git a/utils/mountd/svc_run.c b/utils/mountd/svc_run.c index 422e839..5ba5af6 100644 --- a/utils/mountd/svc_run.c +++ b/utils/mountd/svc_run.c @@ -54,6 +54,10 @@ #include <errno.h> #include <time.h> +#ifdef HAVE_LIBTIRPC +#include <rpc/rpc_com.h> +#endif + void cache_set_fds(fd_set *fdset); int cache_process_req(fd_set *readfds); |