]> git.saurik.com Git - apple/libinfo.git/blobdiff - rpc.subproj/clnt_tcp.c
Libinfo-459.40.1.tar.gz
[apple/libinfo.git] / rpc.subproj / clnt_tcp.c
index 106d4be4861f9d9d9b74d10dafe158ed081e59c3..fa3c20d213e11de661cd794a6319c8d4c9d52686 100644 (file)
@@ -93,7 +93,7 @@ extern int errno;
 extern int     bindresvport();
 extern bool_t  xdr_opaque_auth();
 
-__private_extern__ u_short pmap_getport_timeout(struct sockaddr_in *address, uint32_t program, uint32_t version, uint32_t protocol, struct timeval *timeout, struct timeval *totaltimeout);
+extern u_short pmap_getport_timeout(struct sockaddr_in *address, uint32_t program, uint32_t version, uint32_t protocol, struct timeval *timeout, struct timeval *totaltimeout);
 
 static int     readtcp();
 static int     writetcp();
@@ -267,19 +267,19 @@ fooy:
 CLIENT *
 clnttcp_create(raddr, prog, vers, sockp, sendsz, recvsz)
 #ifdef __LP64__
-struct sockaddr_in *raddr;
-uint32_t prog;
-uint32_t vers;
-int *sockp;
-uint32_t sendsz;
-uint32_t recvsz;
+       struct sockaddr_in *raddr;
+       uint32_t prog;
+       uint32_t vers;
+       int *sockp;
+       uint32_t sendsz;
+       uint32_t recvsz;
 #else
-struct sockaddr_in *raddr;
-u_long prog;
-u_long vers;
-register int *sockp;
-u_int sendsz;
-u_int recvsz;
+       struct sockaddr_in *raddr;
+       u_long prog;
+       u_long vers;
+       register int *sockp;
+       u_int sendsz;
+       u_int recvsz;
 #endif
 {
        return clnttcp_create_timeout(raddr, (uint32_t)prog, (uint32_t)vers, sockp, (uint32_t)sendsz, (uint32_t)recvsz, NULL, NULL);
@@ -288,7 +288,11 @@ u_int recvsz;
 static enum clnt_stat
 clnttcp_call(h, proc, xdr_args, args_ptr, xdr_results, results_ptr, timeout)
        register CLIENT *h;
+#ifdef __LP64__
+       uint32_t proc;
+#else
        u_long proc;
+#endif
        xdrproc_t xdr_args;
        caddr_t args_ptr;
        xdrproc_t xdr_results;
@@ -298,8 +302,13 @@ clnttcp_call(h, proc, xdr_args, args_ptr, xdr_results, results_ptr, timeout)
        register struct ct_data *ct = (struct ct_data *) h->cl_private;
        register XDR *xdrs = &(ct->ct_xdrs);
        struct rpc_msg reply_msg;
+#ifdef __LP64__
+       uint32_t x_id;
+       uint32_t *msg_x_id = (uint32_t *)(ct->ct_mcall);        /* yuk */
+#else
        u_long x_id;
        u_long *msg_x_id = (u_long *)(ct->ct_mcall);    /* yuk */
+#endif
        register bool_t shipnow;
        int refreshes = 2;
 
@@ -319,12 +328,12 @@ call_again:
        if ((! XDR_PUTBYTES(xdrs, ct->ct_mcall, ct->ct_mpos)) ||
            (! XDR_PUTLONG(xdrs, (int *)&proc)) ||
            (! AUTH_MARSHALL(h->cl_auth, xdrs)) ||
-           (! (*xdr_args)(xdrs, args_ptr)))
+           (! (*xdr_args)(xdrs, args_ptr, 0)))
 #else
        if ((! XDR_PUTBYTES(xdrs, ct->ct_mcall, ct->ct_mpos)) ||
                (! XDR_PUTLONG(xdrs, (long *)&proc)) ||
                (! AUTH_MARSHALL(h->cl_auth, xdrs)) ||
-               (! (*xdr_args)(xdrs, args_ptr)))
+               (! (*xdr_args)(xdrs, args_ptr, 0)))
 #endif                 
        {
                if (ct->ct_error.re_status == RPC_SUCCESS)
@@ -372,7 +381,7 @@ call_again:
                if (! AUTH_VALIDATE(h->cl_auth, &reply_msg.acpted_rply.ar_verf)) {
                        ct->ct_error.re_status = RPC_AUTHERROR;
                        ct->ct_error.re_why = AUTH_INVALIDRESP;
-               } else if (! (*xdr_results)(xdrs, results_ptr)) {
+               } else if (! (*xdr_results)(xdrs, results_ptr, 0)) {
                        if (ct->ct_error.re_status == RPC_SUCCESS)
                                ct->ct_error.re_status = RPC_CANTDECODERES;
                }
@@ -411,7 +420,7 @@ clnttcp_freeres(cl, xdr_res, res_ptr)
        register XDR *xdrs = &(ct->ct_xdrs);
 
        xdrs->x_op = XDR_FREE;
-       return ((*xdr_res)(xdrs, res_ptr));
+       return ((*xdr_res)(xdrs, res_ptr, 0));
 }
 
 static void