/*
 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
 *
 * @APPLE_LICENSE_HEADER_START@
 * 
 * "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.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.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
 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
 * 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@
 */
/*
 * Please do not edit this file.
 * It was generated using rpcgen.
 */

#include "yp.h"
#ifndef lint
static char rcsid[] = "$OpenBSD: ypserv_xdr.c,v 1.3 1996/05/30 09:53:31 deraadt Exp $";
#endif /* not lint */

__private_extern__
bool_t
xdr_ypstat(xdrs, objp)
	XDR *xdrs;
	ypstat *objp;
{

	 register long *buf;

	 if (!xdr_enum(xdrs, (enum_t *)objp)) {
		 return (FALSE);
	 }
	return (TRUE);
}

bool_t
xdr_ypxfrstat(xdrs, objp)
	XDR *xdrs;
	ypxfrstat *objp;
{

	 register long *buf;

	 if (!xdr_enum(xdrs, (enum_t *)objp)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_domainname(xdrs, objp)
	XDR *xdrs;
	domainname *objp;
{

	 register long *buf;

	 if (!xdr_string(xdrs, objp, YPMAXDOMAIN)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_mapname(xdrs, objp)
	XDR *xdrs;
	mapname *objp;
{

	 register long *buf;

	 if (!xdr_string(xdrs, objp, YPMAXMAP)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_peername(xdrs, objp)
	XDR *xdrs;
	peername *objp;
{

	 register long *buf;

	 if (!xdr_string(xdrs, objp, YPMAXPEER)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_keydat(xdrs, objp)
	XDR *xdrs;
	keydat *objp;
{

	 register long *buf;

	 if (!xdr_bytes(xdrs, (char **)&objp->keydat_val, (u_int *)&objp->keydat_len, YPMAXRECORD)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_valdat(xdrs, objp)
	XDR *xdrs;
	valdat *objp;
{

	 register long *buf;

	 if (!xdr_bytes(xdrs, (char **)&objp->valdat_val, (u_int *)&objp->valdat_len, YPMAXRECORD)) {
		 return (FALSE);
	 }
	return (TRUE);
}

bool_t
xdr_ypmap_parms(xdrs, objp)
	XDR *xdrs;
	ypmap_parms *objp;
{

	 register long *buf;

	 if (!xdr_domainname(xdrs, &objp->domain)) {
		 return (FALSE);
	 }
	 if (!xdr_mapname(xdrs, &objp->map)) {
		 return (FALSE);
	 }
	 if (!xdr_u_int(xdrs, &objp->ordernum)) {
		 return (FALSE);
	 }
	 if (!xdr_peername(xdrs, &objp->peer)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_ypreq_key(xdrs, objp)
	XDR *xdrs;
	ypreq_key *objp;
{

	 register long *buf;

	 if (!xdr_domainname(xdrs, &objp->domain)) {
		 return (FALSE);
	 }
	 if (!xdr_mapname(xdrs, &objp->map)) {
		 return (FALSE);
	 }
	 if (!xdr_keydat(xdrs, &objp->key)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_ypreq_nokey(xdrs, objp)
	XDR *xdrs;
	ypreq_nokey *objp;
{

	 register long *buf;

	 if (!xdr_domainname(xdrs, &objp->domain)) {
		 return (FALSE);
	 }
	 if (!xdr_mapname(xdrs, &objp->map)) {
		 return (FALSE);
	 }
	return (TRUE);
}

bool_t
xdr_ypreq_xfr(xdrs, objp)
	XDR *xdrs;
	ypreq_xfr *objp;
{

	 register long *buf;

	 if (!xdr_ypmap_parms(xdrs, &objp->map_parms)) {
		 return (FALSE);
	 }
	 if (!xdr_u_int(xdrs, &objp->transid)) {
		 return (FALSE);
	 }
	 if (!xdr_u_int(xdrs, &objp->prog)) {
		 return (FALSE);
	 }
	 if (!xdr_u_int(xdrs, &objp->port)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_ypresp_val(xdrs, objp)
	XDR *xdrs;
	ypresp_val *objp;
{

	 register long *buf;

	 if (!xdr_ypstat(xdrs, &objp->stat)) {
		 return (FALSE);
	 }
	 if (!xdr_valdat(xdrs, &objp->val)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_ypresp_key_val(xdrs, objp)
	XDR *xdrs;
	ypresp_key_val *objp;
{

	 register long *buf;

	 if (!xdr_ypstat(xdrs, &objp->stat)) {
		 return (FALSE);
	 }
	 if (!xdr_valdat(xdrs, &objp->val)) {
		 return (FALSE);
	 }
	 if (!xdr_keydat(xdrs, &objp->key)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_ypresp_master(xdrs, objp)
	XDR *xdrs;
	ypresp_master *objp;
{

	 register long *buf;

	 if (!xdr_ypstat(xdrs, &objp->stat)) {
		 return (FALSE);
	 }
	 if (!xdr_peername(xdrs, &objp->peer)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_ypresp_order(xdrs, objp)
	XDR *xdrs;
	ypresp_order *objp;
{

	 register long *buf;

	 if (!xdr_ypstat(xdrs, &objp->stat)) {
		 return (FALSE);
	 }
	 if (!xdr_u_int(xdrs, &objp->ordernum)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_ypresp_all(xdrs, objp)
	XDR *xdrs;
	ypresp_all *objp;
{

	 register long *buf;

	 if (!xdr_bool(xdrs, &objp->more)) {
		 return (FALSE);
	 }
	switch (objp->more) {
	case TRUE:
		 if (!xdr_ypresp_key_val(xdrs, &objp->ypresp_all_u.val)) {
			 return (FALSE);
		 }
		break;
	case FALSE:
		break;
	default:
		return (FALSE);
	}
	return (TRUE);
}

bool_t
xdr_ypresp_xfr(xdrs, objp)
	XDR *xdrs;
	ypresp_xfr *objp;
{

	 register long *buf;

	 if (!xdr_u_int(xdrs, &objp->transid)) {
		 return (FALSE);
	 }
	 if (!xdr_ypxfrstat(xdrs, &objp->xfrstat)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_ypmaplist(xdrs, objp)
	XDR *xdrs;
	ypmaplist *objp;
{

	 register long *buf;

	 if (!xdr_mapname(xdrs, &objp->map)) {
		 return (FALSE);
	 }
	 if (!xdr_pointer(xdrs, (char **)&objp->next, sizeof(ypmaplist), (xdrproc_t)xdr_ypmaplist)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_ypresp_maplist(xdrs, objp)
	XDR *xdrs;
	ypresp_maplist *objp;
{

	 register long *buf;

	 if (!xdr_ypstat(xdrs, &objp->stat)) {
		 return (FALSE);
	 }
	 if (!xdr_pointer(xdrs, (char **)&objp->maps, sizeof(ypmaplist), (xdrproc_t)xdr_ypmaplist)) {
		 return (FALSE);
	 }
	return (TRUE);
}

bool_t
xdr_yppush_status(xdrs, objp)
	XDR *xdrs;
	yppush_status *objp;
{

	 register long *buf;

	 if (!xdr_enum(xdrs, (enum_t *)objp)) {
		 return (FALSE);
	 }
	return (TRUE);
}

bool_t
xdr_yppushresp_xfr(xdrs, objp)
	XDR *xdrs;
	yppushresp_xfr *objp;
{

	 register long *buf;

	 if (!xdr_u_int(xdrs, &objp->transid)) {
		 return (FALSE);
	 }
	 if (!xdr_yppush_status(xdrs, &objp->status)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_ypbind_resptype(xdrs, objp)
	XDR *xdrs;
	ypbind_resptype *objp;
{

	 register long *buf;

	 if (!xdr_enum(xdrs, (enum_t *)objp)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_ypbind_binding(xdrs, objp)
	XDR *xdrs;
	ypbind_binding *objp;
{

	 register long *buf;

	 int i;
	 if (!xdr_opaque(xdrs, objp->ypbind_binding_addr, 4)) {
		 return (FALSE);
	 }
	 if (!xdr_opaque(xdrs, objp->ypbind_binding_port, 2)) {
		 return (FALSE);
	 }
	return (TRUE);
}

__private_extern__
bool_t
xdr_ypbind_resp(xdrs, objp)
	XDR *xdrs;
	ypbind_resp *objp;
{

	 register long *buf;

	 if (!xdr_ypbind_resptype(xdrs, &objp->ypbind_status)) {
		 return (FALSE);
	 }
	switch (objp->ypbind_status) {
	case YPBIND_FAIL_VAL:
		 if (!xdr_u_int(xdrs, &objp->ypbind_resp_u.ypbind_error)) {
			 return (FALSE);
		 }
		break;
	case YPBIND_SUCC_VAL:
		 if (!xdr_ypbind_binding(xdrs, &objp->ypbind_resp_u.ypbind_bindinfo)) {
			 return (FALSE);
		 }
		break;
	default:
		return (FALSE);
	}
	return (TRUE);
}

bool_t
xdr_ypbind_setdom(xdrs, objp)
	XDR *xdrs;
	ypbind_setdom *objp;
{

	 register long *buf;

	 if (!xdr_domainname(xdrs, &objp->ypsetdom_domain)) {
		 return (FALSE);
	 }
	 if (!xdr_ypbind_binding(xdrs, &objp->ypsetdom_binding)) {
		 return (FALSE);
	 }
	 if (!xdr_u_int(xdrs, &objp->ypsetdom_vers)) {
		 return (FALSE);
	 }
	return (TRUE);
}
