]> git.saurik.com Git - apple/libinfo.git/blobdiff - rpc.subproj/clnt_raw.c
Libinfo-459.40.1.tar.gz
[apple/libinfo.git] / rpc.subproj / clnt_raw.c
index 0fccf080cbc0431d6a052c0829fa264e7f75e04b..e9ecbe5a6508671569efd48bae7fac647dde3895 100644 (file)
@@ -109,13 +109,16 @@ void      svc_getreq();
  */
 CLIENT *
 clntraw_create(prog, vers)
  */
 CLIENT *
 clntraw_create(prog, vers)
+#ifdef __LP64__
+       uint32_t prog;
+       uint32_t vers;
+#else
        u_long prog;
        u_long vers;
        u_long prog;
        u_long vers;
+#endif
 {
        register struct clntraw_private *clp = clntraw_private;
        struct rpc_msg call_msg;
 {
        register struct clntraw_private *clp = clntraw_private;
        struct rpc_msg call_msg;
-       XDR *xdrs = &clp->xdr_stream;
-       CLIENT  *client = &clp->client_object;
 
        if (clp == 0) {
                clp = (struct clntraw_private *)calloc(1, sizeof (*clp));
 
        if (clp == 0) {
                clp = (struct clntraw_private *)calloc(1, sizeof (*clp));
@@ -123,6 +126,8 @@ clntraw_create(prog, vers)
                        return (0);
                clntraw_private = clp;
        }
                        return (0);
                clntraw_private = clp;
        }
+       XDR *xdrs = &clp->xdr_stream;
+       CLIENT *client = &clp->client_object;
        /*
         * pre-serialize the staic part of the call msg and stash it away
         */
        /*
         * pre-serialize the staic part of the call msg and stash it away
         */
@@ -153,7 +158,7 @@ clntraw_create(prog, vers)
 static enum clnt_stat 
 clntraw_call(h, proc, xargs, argsp, xresults, resultsp, timeout)
        CLIENT *h;
 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;
        xdrproc_t xargs;
        caddr_t argsp;
        xdrproc_t xresults;
@@ -175,12 +180,17 @@ call_again:
        xdrs->x_op = XDR_ENCODE;
        XDR_SETPOS(xdrs, 0);
        ((struct rpc_msg *)clp->mashl_callmsg)->rm_xid ++ ;
        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)) ||
        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)) ||
            (! AUTH_MARSHALL(h->cl_auth, xdrs)) ||
-           (! (*xargs)(xdrs, argsp))) {
-               return (RPC_CANTENCODEARGS);
-       }
+           (! (*xargs)(xdrs, argsp, 0))) 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, 0))) return (RPC_CANTENCODEARGS);
+#endif
        (void)XDR_GETPOS(xdrs);  /* called just to cause overhead */
 
        /*
        (void)XDR_GETPOS(xdrs);  /* called just to cause overhead */
 
        /*
@@ -247,7 +257,7 @@ clntraw_freeres(cl, xdr_res, res_ptr)
                return (rval);
        }
        xdrs->x_op = XDR_FREE;
                return (rval);
        }
        xdrs->x_op = XDR_FREE;
-       return ((*xdr_res)(xdrs, res_ptr));
+       return ((*xdr_res)(xdrs, res_ptr, 0));
 }
 
 static void
 }
 
 static void