]> git.saurik.com Git - apple/libinfo.git/blobdiff - rpc.subproj/rpc_prot.c
Libinfo-517.30.1.tar.gz
[apple/libinfo.git] / rpc.subproj / rpc_prot.c
index d62cbdc229d95dd27bcd9ef814f7b3834f0947c5..df402b953a81558548ce21dd85bf024aaba64af4 100644 (file)
@@ -3,22 +3,21 @@
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
- * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
+ * Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
+ * Reserved.  This file contains Original Code and/or Modifications of
+ * Original Code as defined in and that are subject to the Apple Public
+ * Source License Version 1.1 (the "License").  You may not use this file
+ * except in compliance with the License.  Please obtain a copy of the
+ * License at http://www.apple.com/publicsource and read it before using
+ * this file.
  * 
  * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
+ * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT.  Please see the
+ * License for the specific language governing rights and limitations
+ * under the License.
  * 
  * @APPLE_LICENSE_HEADER_END@
  */
@@ -126,7 +125,7 @@ xdr_accepted_reply(xdrs, ar)
        switch (ar->ar_stat) {
 
        case SUCCESS:
-               return ((*(ar->ar_results.proc))(xdrs, ar->ar_results.where));
+               return ((*(ar->ar_results.proc))(xdrs, ar->ar_results.where, 0));
 
        case PROG_MISMATCH:
                if (! xdr_u_long(xdrs, &(ar->ar_vers.low)))
@@ -163,8 +162,8 @@ xdr_rejected_reply(xdrs, rr)
 }
 
 static struct xdr_discrim reply_dscrm[3] = {
-       { (int)MSG_ACCEPTED, xdr_accepted_reply },
-       { (int)MSG_DENIED, xdr_rejected_reply },
+       { (int)MSG_ACCEPTED, (xdrproc_t)xdr_accepted_reply },
+       { (int)MSG_DENIED, (xdrproc_t)xdr_rejected_reply },
        { __dontcare__, NULL_xdrproc_t } };
 
 /*
@@ -244,8 +243,13 @@ accepted(acpt_stat, error)
        }
        /* something's wrong, but we don't know what ... */
        error->re_status = RPC_FAILED;
+#ifdef __LP64__
+       error->re_lb.s1 = (int)MSG_ACCEPTED;
+       error->re_lb.s2 = (int)acpt_stat;
+#else
        error->re_lb.s1 = (long)MSG_ACCEPTED;
        error->re_lb.s2 = (long)acpt_stat;
+#endif
 }
 
 static void 
@@ -256,7 +260,7 @@ rejected(rjct_stat, error)
 
        switch (rjct_stat) {
 
-       case RPC_VERSMISMATCH:
+       case RPC_MISMATCH:
                error->re_status = RPC_VERSMISMATCH;
                return;
 
@@ -267,8 +271,13 @@ rejected(rjct_stat, error)
        }
        /* something's wrong, but we don't know what ... */
        error->re_status = RPC_FAILED;
+#ifdef __LP64__
+       error->re_lb.s1 = (int)MSG_DENIED;
+       error->re_lb.s2 = (int)rjct_stat;
+#else
        error->re_lb.s1 = (long)MSG_DENIED;
        error->re_lb.s2 = (long)rjct_stat;
+#endif
 }
 
 /*
@@ -297,7 +306,11 @@ _seterr_reply(msg, error)
 
        default:
                error->re_status = RPC_FAILED;
+#ifdef __LP64__
+               error->re_lb.s1 = (int)(msg->rm_reply.rp_stat);
+#else
                error->re_lb.s1 = (long)(msg->rm_reply.rp_stat);
+#endif
                break;
        }
        switch (error->re_status) {