/*
 * Please do not edit this file.
 * It was generated using rpcgen.
 */

#include "ads_priv.h"

#ifndef _KERNEL
#include <stdlib.h>
#endif /* !_KERNEL */

/*
 * Copyright 2014 Nexenta Systems, Inc.  All rights reserved.
 */
/*
 * from ads_priv.x
 * Active Directory Services (ADS) Private interface between
 * libads and the ADS deamon.  (RPC over doors)
 */
/*
 * XDR routines for the ADS API
 */

bool_t
xdr_adspriv_guid(XDR *xdrs, adspriv_guid objp)
{

	rpc_inline_t *buf __unused;

	if (!xdr_opaque(xdrs, objp, ADSPRIV_GUID_LEN))
		return (FALSE);
	return (TRUE);
}

bool_t
xdr_adspriv_sockaddr(XDR *xdrs, adspriv_sockaddr objp)
{

	rpc_inline_t *buf __unused;

	if (!xdr_opaque(xdrs, objp, ADSPRIV_SOCKADDR_LEN))
		return (FALSE);
	return (TRUE);
}

bool_t
xdr_adspriv_dcinfo(XDR *xdrs, adspriv_dcinfo *objp)
{

	rpc_inline_t *buf __unused;

	if (!xdr_string(xdrs, &objp->dci_DcName, ADSPRIV_STR_MAX))
		return (FALSE);
	if (!xdr_string(xdrs, &objp->dci_DcAddr, ADSPRIV_STR_MAX))
		return (FALSE);
	if (!xdr_u_int(xdrs, &objp->dci_AddrType))
		return (FALSE);
	if (!xdr_adspriv_guid(xdrs, objp->dci_guid))
		return (FALSE);
	if (!xdr_string(xdrs, &objp->dci_DomainName, ADSPRIV_STR_MAX))
		return (FALSE);
	if (!xdr_string(xdrs, &objp->dci_DnsForestName, ADSPRIV_STR_MAX))
		return (FALSE);
	if (!xdr_u_int(xdrs, &objp->dci_Flags))
		return (FALSE);
	if (!xdr_string(xdrs, &objp->dci_DcSiteName, ADSPRIV_STR_MAX))
		return (FALSE);
	if (!xdr_string(xdrs, &objp->dci_ClientSiteName, ADSPRIV_STR_MAX))
		return (FALSE);
	if (!xdr_adspriv_sockaddr(xdrs, objp->dci_sockaddr))
		return (FALSE);
	return (TRUE);
}

bool_t
xdr_DsForceRediscoveryArgs(XDR *xdrs, DsForceRediscoveryArgs *objp)
{

	rpc_inline_t *buf __unused;

	if (!xdr_u_int(xdrs, &objp->Flags))
		return (FALSE);
	if (!xdr_string(xdrs, &objp->DomainName, ADSPRIV_STR_MAX))
		return (FALSE);
	return (TRUE);
}

bool_t
xdr_DsGetDcNameArgs(XDR *xdrs, DsGetDcNameArgs *objp)
{

	rpc_inline_t *buf __unused;

	if (!xdr_string(xdrs, &objp->ComputerName, ADSPRIV_STR_MAX))
		return (FALSE);
	if (!xdr_string(xdrs, &objp->DomainName, ADSPRIV_STR_MAX))
		return (FALSE);
	if (!xdr_string(xdrs, &objp->DomainGuid, ADSPRIV_STR_MAX))
		return (FALSE);
	if (!xdr_string(xdrs, &objp->SiteName, ADSPRIV_STR_MAX))
		return (FALSE);
	if (!xdr_u_int(xdrs, &objp->Flags))
		return (FALSE);
	return (TRUE);
}

bool_t
xdr_DsGetDcNameRes(XDR *xdrs, DsGetDcNameRes *objp)
{

	rpc_inline_t *buf __unused;

	if (!xdr_int(xdrs, &objp->status))
		return (FALSE);
	switch (objp->status) {
	case 0:
		if (!xdr_adspriv_dcinfo(xdrs, &objp->DsGetDcNameRes_u.res0))
			return (FALSE);
		break;
	default:
		break;
	}
	return (TRUE);
}
