]> granicus.if.org Git - libtirpc/commitdiff
Added HAVE_LIBGSSAPI defines around gss code libtirpc-0-2-1-rc3
authorSteve Dickson <steved@redhat.com>
Thu, 9 Jul 2009 19:53:08 +0000 (15:53 -0400)
committerSteve Dickson <steved@redhat.com>
Thu, 9 Jul 2009 19:53:08 +0000 (15:53 -0400)
so the --disble-gss configure option would work

Renamed configure.in to configure.ac so the HAVE_LIBGSSAPI
define would be defined in the correct place.

Clean up warnings when --enable-gss is used.

Signed-off-by: Steve Dickson <steved@redhat.com>
configure.ac [moved from configure.in with 96% similarity]
src/authgss_prot.c
src/svc.c
src/svc_auth_gss.c

similarity index 96%
rename from configure.in
rename to configure.ac
index bacb265d2f6df07a7bab6762c68f26f62c29e100..df50e94215f53059b50fbe6ec281a0b177a69106 100644 (file)
@@ -10,6 +10,7 @@ AC_ARG_ENABLE(gss,[  --enable-gss            Turn on gss api], [case "${enableva
       esac],[gss=false])
 AM_CONDITIONAL(GSS, test x$gss = xtrue)
 if test x$gss = xtrue; then
+       AC_DEFINE(HAVE_LIBGSSAPI, 1, [])
        PKG_CHECK_MODULES(GSSGLUE, libgssglue, [],
        AC_MSG_ERROR([Unable to locate information required to use libgssglue.]))
 fi
index be0d1a6501fc0a8c87087e244f1d407bdb2386b0..ab72d918b9446a3e6960a81f336a874eef803381 100644 (file)
@@ -54,7 +54,7 @@ xdr_rpc_gss_cred(XDR *xdrs, struct rpc_gss_cred *p)
                    xdr_u_int(xdrs, &p->gc_seq) &&
                    xdr_enum(xdrs, (enum_t *)&p->gc_svc) &&
                    xdr_bytes(xdrs, (char **)&p->gc_ctx.value,
-                             &p->gc_ctx.length, MAX_AUTH_BYTES));
+                             (u_int *)&p->gc_ctx.length, MAX_AUTH_BYTES));
 
        log_debug("xdr_rpc_gss_cred: %s %s "
                  "(v %d, proc %d, seq %d, svc %d, ctx %p:%d)",
@@ -72,7 +72,7 @@ xdr_rpc_gss_init_args(XDR *xdrs, gss_buffer_desc *p)
        bool_t xdr_stat;
 
        xdr_stat = xdr_bytes(xdrs, (char **)&p->value,
-                             &p->length, MAX_NETOBJ_SZ);
+                             (u_int *)&p->length, MAX_NETOBJ_SZ);
 
        log_debug("xdr_rpc_gss_init_args: %s %s (token %p:%d)",
                  (xdrs->x_op == XDR_ENCODE) ? "encode" : "decode",
@@ -88,12 +88,12 @@ xdr_rpc_gss_init_res(XDR *xdrs, struct rpc_gss_init_res *p)
        bool_t xdr_stat;
 
        xdr_stat = (xdr_bytes(xdrs, (char **)&p->gr_ctx.value,
-                             &p->gr_ctx.length, MAX_NETOBJ_SZ) &&
+                             (u_int *)&p->gr_ctx.length, MAX_NETOBJ_SZ) &&
                    xdr_u_int(xdrs, &p->gr_major) &&
                    xdr_u_int(xdrs, &p->gr_minor) &&
                    xdr_u_int(xdrs, &p->gr_win) &&
                    xdr_bytes(xdrs, (char **)&p->gr_token.value,
-                             &p->gr_token.length, MAX_NETOBJ_SZ));
+                             (u_int *)&p->gr_token.length, MAX_NETOBJ_SZ));
 
        log_debug("xdr_rpc_gss_init_res %s %s "
                  "(ctx %p:%d, maj %d, min %d, win %d, token %p:%d)",
@@ -135,7 +135,7 @@ xdr_rpc_gss_wrap_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr,
        if (svc == RPCSEC_GSS_SVC_INTEGRITY) {
                /* Marshal databody_integ length. */
                XDR_SETPOS(xdrs, start);
-               if (!xdr_u_int(xdrs, &databuf.length))
+               if (!xdr_u_int(xdrs, (u_int *)&databuf.length))
                        return (FALSE);
 
                /* Checksum rpc_gss_data_t. */
@@ -148,7 +148,7 @@ xdr_rpc_gss_wrap_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr,
                /* Marshal checksum. */
                XDR_SETPOS(xdrs, end);
                xdr_stat = xdr_bytes(xdrs, (char **)&wrapbuf.value,
-                                    &wrapbuf.length, MAX_NETOBJ_SZ);
+                                    (u_int *)&wrapbuf.length, MAX_NETOBJ_SZ);
                gss_release_buffer(&min_stat, &wrapbuf);
        }
        else if (svc == RPCSEC_GSS_SVC_PRIVACY) {
@@ -162,7 +162,7 @@ xdr_rpc_gss_wrap_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr,
                /* Marshal databody_priv. */
                XDR_SETPOS(xdrs, start);
                xdr_stat = xdr_bytes(xdrs, (char **)&wrapbuf.value,
-                                    &wrapbuf.length, MAX_NETOBJ_SZ);
+                                    (u_int *)&wrapbuf.length, MAX_NETOBJ_SZ);
                gss_release_buffer(&min_stat, &wrapbuf);
        }
        return (xdr_stat);
@@ -188,13 +188,13 @@ xdr_rpc_gss_unwrap_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr,
 
        if (svc == RPCSEC_GSS_SVC_INTEGRITY) {
                /* Decode databody_integ. */
-               if (!xdr_bytes(xdrs, (char **)&databuf.value, &databuf.length,
+               if (!xdr_bytes(xdrs, (char **)&databuf.value, (u_int *)&databuf.length,
                               MAX_NETOBJ_SZ)) {
                        log_debug("xdr decode databody_integ failed");
                        return (FALSE);
                }
                /* Decode checksum. */
-               if (!xdr_bytes(xdrs, (char **)&wrapbuf.value, &wrapbuf.length,
+               if (!xdr_bytes(xdrs, (char **)&wrapbuf.value, (u_int *)&wrapbuf.length,
                               MAX_NETOBJ_SZ)) {
                        gss_release_buffer(&min_stat, &databuf);
                        log_debug("xdr decode checksum failed");
@@ -213,7 +213,7 @@ xdr_rpc_gss_unwrap_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr,
        }
        else if (svc == RPCSEC_GSS_SVC_PRIVACY) {
                /* Decode databody_priv. */
-               if (!xdr_bytes(xdrs, (char **)&wrapbuf.value, &wrapbuf.length,
+               if (!xdr_bytes(xdrs, (char **)&wrapbuf.value, (u_int *)&wrapbuf.length,
                               MAX_NETOBJ_SZ)) {
                        log_debug("xdr decode databody_priv failed");
                        return (FALSE);
index a61c14ba92bad6dac0bb3551552b372255eeff1e..cc65e6a545d9026c8ae6c3a0f2ff34a15697c3eb 100644 (file)
--- a/src/svc.c
+++ b/src/svc.c
@@ -77,7 +77,9 @@ static struct svc_callout
 
 extern rwlock_t svc_lock;
 extern rwlock_t svc_fd_lock;
+#ifdef HAVE_LIBGSSAPI
 extern struct svc_auth_ops svc_auth_gss_ops;
+#endif
 
 static struct svc_callout *svc_find (rpcprog_t, rpcvers_t,
                                     struct svc_callout **, char *);
@@ -715,9 +717,11 @@ svc_getreq_common (fd)
          SVC_DESTROY (xprt);
          break;
        }
-      else if ((xprt->xp_auth != NULL) &&
-              (xprt->xp_auth->svc_ah_ops != &svc_auth_gss_ops))
-       {
+    else if ((xprt->xp_auth != NULL) 
+#ifdef HAVE_LIBGSSAPI
+               && (xprt->xp_auth->svc_ah_ops != &svc_auth_gss_ops)
+#endif
+       ) {
          xprt->xp_auth = NULL;
        }
     }
index 9e9ff814f2472b7789c344dc1808cb81d759629a..54b23b1f0daa2b4da5b80d49346270a04361c898 100644 (file)
@@ -121,7 +121,7 @@ svcauth_gss_import_name(char *service)
        namebuf.length = strlen(service);
 
        maj_stat = gss_import_name(&min_stat, &namebuf,
-                                  GSS_C_NT_HOSTBASED_SERVICE, &name);
+                                  (gss_OID)GSS_C_NT_HOSTBASED_SERVICE, &name);
 
        if (maj_stat != GSS_S_COMPLETE) {
                log_status("gss_import_name", maj_stat, min_stat);