]> git.saurik.com Git - apple/libinfo.git/blobdiff - rpc.subproj/clnt_raw.c
Libinfo-392.1.tar.gz
[apple/libinfo.git] / rpc.subproj / clnt_raw.c
index 100b8707def511324083e6d0a4b9ee76070f7642..75a44aa4dd2595ae344d56763dc11d9094910b85 100644 (file)
@@ -53,7 +53,7 @@
 #if defined(LIBC_SCCS) && !defined(lint)
 /*static char *sccsid = "from: @(#)clnt_raw.c 1.22 87/08/11 Copyr 1984 Sun Micro";*/
 /*static char *sccsid = "from: @(#)clnt_raw.c  2.2 88/08/01 4.0 RPCSRC";*/
-static char *rcsid = "$Id: clnt_raw.c,v 1.2 1999/10/14 21:56:53 wsanchez Exp $";
+static char *rcsid = "$Id: clnt_raw.c,v 1.3 2002/02/19 20:36:22 epeyton Exp $";
 #endif
 
 /*
@@ -67,8 +67,12 @@ static char *rcsid = "$Id: clnt_raw.c,v 1.2 1999/10/14 21:56:53 wsanchez Exp $";
  * any interference from the kernal.
  */
 
+#include <stdio.h>
+#include <stdlib.h>
 #include <rpc/rpc.h>
 
+extern bool_t  xdr_opaque_auth();
+
 #define MCALL_MSG_SIZE 24
 
 /*
@@ -105,13 +109,18 @@ void      svc_getreq();
  */
 CLIENT *
 clntraw_create(prog, vers)
+#ifdef __LP64__
+       uint32_t prog;
+       uint32_t vers;
+#else
        u_long prog;
        u_long vers;
+#endif
 {
        register struct clntraw_private *clp = clntraw_private;
        struct rpc_msg call_msg;
        XDR *xdrs = &clp->xdr_stream;
-       CLIENT  *client = &clp->client_object;
+       CLIENT *client = &clp->client_object;
 
        if (clp == 0) {
                clp = (struct clntraw_private *)calloc(1, sizeof (*clp));
@@ -149,7 +158,7 @@ clntraw_create(prog, vers)
 static enum clnt_stat 
 clntraw_call(h, proc, xargs, argsp, xresults, resultsp, timeout)
        CLIENT *h;
-       u_long proc;
+       rpc_uint proc;
        xdrproc_t xargs;
        caddr_t argsp;
        xdrproc_t xresults;
@@ -171,12 +180,17 @@ call_again:
        xdrs->x_op = XDR_ENCODE;
        XDR_SETPOS(xdrs, 0);
        ((struct rpc_msg *)clp->mashl_callmsg)->rm_xid ++ ;
+#ifdef __LP64__
        if ((! XDR_PUTBYTES(xdrs, clp->mashl_callmsg, clp->mcnt)) ||
-           (! XDR_PUTLONG(xdrs, (long *)&proc)) ||
+           (! XDR_PUTLONG(xdrs, (int *)&proc)) ||
            (! AUTH_MARSHALL(h->cl_auth, xdrs)) ||
-           (! (*xargs)(xdrs, argsp))) {
-               return (RPC_CANTENCODEARGS);
-       }
+           (! (*xargs)(xdrs, argsp))) return (RPC_CANTENCODEARGS);
+#else
+       if ((! XDR_PUTBYTES(xdrs, clp->mashl_callmsg, clp->mcnt)) ||
+               (! XDR_PUTLONG(xdrs, (long *)&proc)) ||
+               (! AUTH_MARSHALL(h->cl_auth, xdrs)) ||
+               (! (*xargs)(xdrs, argsp))) return (RPC_CANTENCODEARGS);
+#endif
        (void)XDR_GETPOS(xdrs);  /* called just to cause overhead */
 
        /*