Home | History | Annotate | Line # | Download | only in rpc
rpcb_st_xdr.c revision 1.10.20.1
      1  1.10.20.1  pgoyette /*	$NetBSD: rpcb_st_xdr.c,v 1.10.20.1 2017/05/11 02:58:33 pgoyette Exp $	*/
      2        1.1      fvdl 
      3        1.1      fvdl /*
      4       1.10      tron  * Copyright (c) 2010, Oracle America, Inc.
      5       1.10      tron  *
      6       1.10      tron  * Redistribution and use in source and binary forms, with or without
      7       1.10      tron  * modification, are permitted provided that the following conditions are
      8       1.10      tron  * met:
      9       1.10      tron  *
     10       1.10      tron  *     * Redistributions of source code must retain the above copyright
     11       1.10      tron  *       notice, this list of conditions and the following disclaimer.
     12       1.10      tron  *     * Redistributions in binary form must reproduce the above
     13       1.10      tron  *       copyright notice, this list of conditions and the following
     14       1.10      tron  *       disclaimer in the documentation and/or other materials
     15       1.10      tron  *       provided with the distribution.
     16       1.10      tron  *     * Neither the name of the "Oracle America, Inc." nor the names of its
     17       1.10      tron  *       contributors may be used to endorse or promote products derived
     18       1.10      tron  *       from this software without specific prior written permission.
     19       1.10      tron  *
     20       1.10      tron  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     21       1.10      tron  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     22       1.10      tron  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     23       1.10      tron  *   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     24       1.10      tron  *   COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
     25       1.10      tron  *   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     26       1.10      tron  *   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
     27       1.10      tron  *   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     28       1.10      tron  *   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     29       1.10      tron  *   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
     30       1.10      tron  *   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     31       1.10      tron  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     32        1.1      fvdl  */
     33        1.1      fvdl /*
     34        1.1      fvdl  * Copyright 1991 Sun Microsystems, Inc.
     35        1.1      fvdl  * rpcb_stat_xdr.c
     36        1.1      fvdl  */
     37        1.1      fvdl 
     38        1.1      fvdl /*
     39        1.1      fvdl  * This file was generated from rpcb_prot.x, but includes only those
     40        1.1      fvdl  * routines used with the rpcbind stats facility.
     41        1.1      fvdl  */
     42        1.6    itojun 
     43        1.6    itojun #include <sys/cdefs.h>
     44        1.6    itojun #if defined(LIBC_SCCS) && !defined(lint)
     45  1.10.20.1  pgoyette __RCSID("$NetBSD: rpcb_st_xdr.c,v 1.10.20.1 2017/05/11 02:58:33 pgoyette Exp $");
     46        1.6    itojun #endif
     47        1.1      fvdl 
     48        1.1      fvdl #include "namespace.h"
     49        1.1      fvdl #include <rpc/rpc.h>
     50  1.10.20.1  pgoyette #include <rpc/rpc_com.h>
     51        1.1      fvdl 
     52        1.4     lukem #include <assert.h>
     53        1.4     lukem 
     54        1.1      fvdl /* Link list of all the stats about getport and getaddr */
     55        1.1      fvdl 
     56        1.1      fvdl #ifdef __weak_alias
     57        1.1      fvdl __weak_alias(xdr_rpcbs_addrlist,_xdr_rpcbs_addrlist)
     58        1.1      fvdl __weak_alias(xdr_rpcbs_rmtcalllist,_xdr_rpcbs_rmtcalllist)
     59        1.1      fvdl __weak_alias(xdr_rpcbs_proc,_xdr_rpcbs_proc)
     60        1.1      fvdl __weak_alias(xdr_rpcbs_addrlist_ptr,_xdr_rpcbs_addrlist_ptr)
     61        1.1      fvdl __weak_alias(xdr_rpcbs_rmtcalllist_ptr,_xdr_rpcbs_rmtcalllist_ptr)
     62        1.1      fvdl __weak_alias(xdr_rpcb_stat,_xdr_rpcb_stat)
     63        1.1      fvdl __weak_alias(xdr_rpcb_stat_byvers,_xdr_rpcb_stat_byvers)
     64        1.1      fvdl #endif
     65        1.1      fvdl 
     66        1.1      fvdl bool_t
     67        1.9       abs xdr_rpcbs_addrlist(XDR *xdrs, rpcbs_addrlist *objp)
     68        1.1      fvdl {
     69        1.1      fvdl 
     70        1.4     lukem 	_DIAGASSERT(objp != NULL);
     71        1.4     lukem 
     72        1.1      fvdl 	    if (!xdr_u_int32_t(xdrs, &objp->prog)) {
     73        1.1      fvdl 		return (FALSE);
     74        1.1      fvdl 	    }
     75        1.1      fvdl 	    if (!xdr_u_int32_t(xdrs, &objp->vers)) {
     76        1.1      fvdl 		return (FALSE);
     77        1.1      fvdl 	    }
     78        1.1      fvdl 	    if (!xdr_int(xdrs, &objp->success)) {
     79        1.1      fvdl 		return (FALSE);
     80        1.1      fvdl 	    }
     81        1.1      fvdl 	    if (!xdr_int(xdrs, &objp->failure)) {
     82        1.1      fvdl 		return (FALSE);
     83        1.1      fvdl 	    }
     84  1.10.20.1  pgoyette 	    if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) {
     85        1.1      fvdl 		return (FALSE);
     86        1.1      fvdl 	    }
     87        1.1      fvdl 
     88        1.7       mrg 	    if (!xdr_pointer(xdrs, (char **)(void *)&objp->next,
     89        1.8  christos 			(u_int)sizeof (rpcbs_addrlist),
     90        1.1      fvdl 			(xdrproc_t)xdr_rpcbs_addrlist)) {
     91        1.1      fvdl 		return (FALSE);
     92        1.1      fvdl 	    }
     93        1.1      fvdl 
     94        1.1      fvdl 	return (TRUE);
     95        1.1      fvdl }
     96        1.1      fvdl 
     97        1.1      fvdl /* Link list of all the stats about rmtcall */
     98        1.1      fvdl 
     99        1.1      fvdl bool_t
    100        1.9       abs xdr_rpcbs_rmtcalllist(XDR *xdrs, rpcbs_rmtcalllist *objp)
    101        1.1      fvdl {
    102        1.2  christos 	int32_t *buf;
    103        1.1      fvdl 
    104        1.4     lukem 	_DIAGASSERT(xdrs != NULL);
    105        1.4     lukem 	_DIAGASSERT(objp != NULL);
    106        1.4     lukem 
    107        1.1      fvdl 	if (xdrs->x_op == XDR_ENCODE) {
    108        1.1      fvdl 	buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT);
    109        1.1      fvdl 	if (buf == NULL) {
    110        1.1      fvdl 		if (!xdr_u_int32_t(xdrs, &objp->prog)) {
    111        1.1      fvdl 			return (FALSE);
    112        1.1      fvdl 		}
    113        1.1      fvdl 		if (!xdr_u_int32_t(xdrs, &objp->vers)) {
    114        1.1      fvdl 			return (FALSE);
    115        1.1      fvdl 		}
    116        1.1      fvdl 		if (!xdr_u_int32_t(xdrs, &objp->proc)) {
    117        1.1      fvdl 			return (FALSE);
    118        1.1      fvdl 		}
    119        1.1      fvdl 		if (!xdr_int(xdrs, &objp->success)) {
    120        1.1      fvdl 			return (FALSE);
    121        1.1      fvdl 		}
    122        1.1      fvdl 		if (!xdr_int(xdrs, &objp->failure)) {
    123        1.1      fvdl 			return (FALSE);
    124        1.1      fvdl 		}
    125        1.1      fvdl 		if (!xdr_int(xdrs, &objp->indirect)) {
    126        1.1      fvdl 			return (FALSE);
    127        1.1      fvdl 		}
    128        1.1      fvdl 	} else {
    129        1.3      fvdl 		IXDR_PUT_U_INT32(buf, objp->prog);
    130        1.3      fvdl 		IXDR_PUT_U_INT32(buf, objp->vers);
    131        1.3      fvdl 		IXDR_PUT_U_INT32(buf, objp->proc);
    132        1.3      fvdl 		IXDR_PUT_INT32(buf, objp->success);
    133        1.3      fvdl 		IXDR_PUT_INT32(buf, objp->failure);
    134        1.3      fvdl 		IXDR_PUT_INT32(buf, objp->indirect);
    135        1.1      fvdl 	}
    136  1.10.20.1  pgoyette 	if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) {
    137        1.1      fvdl 		return (FALSE);
    138        1.1      fvdl 	}
    139        1.7       mrg 	if (!xdr_pointer(xdrs, (char **)(void *)&objp->next,
    140        1.8  christos 			(u_int)sizeof (rpcbs_rmtcalllist),
    141        1.1      fvdl 			(xdrproc_t)xdr_rpcbs_rmtcalllist)) {
    142        1.1      fvdl 		return (FALSE);
    143        1.1      fvdl 	}
    144        1.1      fvdl 	return (TRUE);
    145        1.1      fvdl 	} else if (xdrs->x_op == XDR_DECODE) {
    146        1.1      fvdl 	buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT);
    147        1.1      fvdl 	if (buf == NULL) {
    148        1.1      fvdl 		if (!xdr_u_int32_t(xdrs, &objp->prog)) {
    149        1.1      fvdl 			return (FALSE);
    150        1.1      fvdl 		}
    151        1.1      fvdl 		if (!xdr_u_int32_t(xdrs, &objp->vers)) {
    152        1.1      fvdl 			return (FALSE);
    153        1.1      fvdl 		}
    154        1.1      fvdl 		if (!xdr_u_int32_t(xdrs, &objp->proc)) {
    155        1.1      fvdl 			return (FALSE);
    156        1.1      fvdl 		}
    157        1.1      fvdl 		if (!xdr_int(xdrs, &objp->success)) {
    158        1.1      fvdl 			return (FALSE);
    159        1.1      fvdl 		}
    160        1.1      fvdl 		if (!xdr_int(xdrs, &objp->failure)) {
    161        1.1      fvdl 			return (FALSE);
    162        1.1      fvdl 		}
    163        1.1      fvdl 		if (!xdr_int(xdrs, &objp->indirect)) {
    164        1.1      fvdl 			return (FALSE);
    165        1.1      fvdl 		}
    166        1.1      fvdl 	} else {
    167        1.3      fvdl 		objp->prog = (rpcprog_t)IXDR_GET_U_INT32(buf);
    168        1.3      fvdl 		objp->vers = (rpcvers_t)IXDR_GET_U_INT32(buf);
    169        1.3      fvdl 		objp->proc = (rpcproc_t)IXDR_GET_U_INT32(buf);
    170        1.3      fvdl 		objp->success = (int)IXDR_GET_INT32(buf);
    171        1.3      fvdl 		objp->failure = (int)IXDR_GET_INT32(buf);
    172        1.3      fvdl 		objp->indirect = (int)IXDR_GET_INT32(buf);
    173        1.1      fvdl 	}
    174  1.10.20.1  pgoyette 	if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) {
    175        1.1      fvdl 		return (FALSE);
    176        1.1      fvdl 	}
    177        1.7       mrg 	if (!xdr_pointer(xdrs, (char **)(void *)&objp->next,
    178        1.8  christos 			(u_int)sizeof (rpcbs_rmtcalllist),
    179        1.1      fvdl 			(xdrproc_t)xdr_rpcbs_rmtcalllist)) {
    180        1.1      fvdl 		return (FALSE);
    181        1.1      fvdl 	}
    182        1.1      fvdl 	return (TRUE);
    183        1.1      fvdl 	}
    184        1.1      fvdl 	if (!xdr_u_int32_t(xdrs, &objp->prog)) {
    185        1.1      fvdl 		return (FALSE);
    186        1.1      fvdl 	}
    187        1.1      fvdl 	if (!xdr_u_int32_t(xdrs, &objp->vers)) {
    188        1.1      fvdl 		return (FALSE);
    189        1.1      fvdl 	}
    190        1.1      fvdl 	if (!xdr_u_int32_t(xdrs, &objp->proc)) {
    191        1.1      fvdl 		return (FALSE);
    192        1.1      fvdl 	}
    193        1.1      fvdl 	if (!xdr_int(xdrs, &objp->success)) {
    194        1.1      fvdl 		return (FALSE);
    195        1.1      fvdl 	}
    196        1.1      fvdl 	if (!xdr_int(xdrs, &objp->failure)) {
    197        1.1      fvdl 		return (FALSE);
    198        1.1      fvdl 	}
    199        1.1      fvdl 	if (!xdr_int(xdrs, &objp->indirect)) {
    200        1.1      fvdl 		return (FALSE);
    201        1.1      fvdl 	}
    202  1.10.20.1  pgoyette 	if (!xdr_string(xdrs, &objp->netid, RPC_MAXDATASIZE)) {
    203        1.1      fvdl 		return (FALSE);
    204        1.1      fvdl 	}
    205        1.7       mrg 	if (!xdr_pointer(xdrs, (char **)(void *)&objp->next,
    206        1.8  christos 			(u_int)sizeof (rpcbs_rmtcalllist),
    207        1.1      fvdl 			(xdrproc_t)xdr_rpcbs_rmtcalllist)) {
    208        1.1      fvdl 		return (FALSE);
    209        1.1      fvdl 	}
    210        1.1      fvdl 	return (TRUE);
    211        1.1      fvdl }
    212        1.1      fvdl 
    213        1.1      fvdl bool_t
    214        1.9       abs xdr_rpcbs_proc(XDR *xdrs, rpcbs_proc objp)
    215        1.1      fvdl {
    216        1.2  christos 	if (!xdr_vector(xdrs, (char *)(void *)objp, RPCBSTAT_HIGHPROC,
    217        1.8  christos 	    (u_int)sizeof (int), (xdrproc_t)xdr_int)) {
    218        1.1      fvdl 		return (FALSE);
    219        1.1      fvdl 	}
    220        1.1      fvdl 	return (TRUE);
    221        1.1      fvdl }
    222        1.1      fvdl 
    223        1.1      fvdl bool_t
    224        1.9       abs xdr_rpcbs_addrlist_ptr(XDR *xdrs, rpcbs_addrlist_ptr *objp)
    225        1.1      fvdl {
    226        1.8  christos 	if (!xdr_pointer(xdrs, (char **)objp, (u_int)sizeof (rpcbs_addrlist),
    227        1.1      fvdl 			(xdrproc_t)xdr_rpcbs_addrlist)) {
    228        1.1      fvdl 		return (FALSE);
    229        1.1      fvdl 	}
    230        1.1      fvdl 	return (TRUE);
    231        1.1      fvdl }
    232        1.1      fvdl 
    233        1.1      fvdl bool_t
    234        1.9       abs xdr_rpcbs_rmtcalllist_ptr(XDR *xdrs, rpcbs_rmtcalllist_ptr *objp)
    235        1.1      fvdl {
    236        1.8  christos 	if (!xdr_pointer(xdrs, (char **)objp, (u_int)sizeof (rpcbs_rmtcalllist),
    237        1.1      fvdl 			(xdrproc_t)xdr_rpcbs_rmtcalllist)) {
    238        1.1      fvdl 		return (FALSE);
    239        1.1      fvdl 	}
    240        1.1      fvdl 	return (TRUE);
    241        1.1      fvdl }
    242        1.1      fvdl 
    243        1.1      fvdl bool_t
    244        1.9       abs xdr_rpcb_stat(XDR *xdrs, rpcb_stat *objp)
    245        1.1      fvdl {
    246        1.4     lukem 
    247        1.4     lukem 	_DIAGASSERT(objp != NULL);
    248        1.1      fvdl 
    249        1.1      fvdl 	if (!xdr_rpcbs_proc(xdrs, objp->info)) {
    250        1.1      fvdl 		return (FALSE);
    251        1.1      fvdl 	}
    252        1.1      fvdl 	if (!xdr_int(xdrs, &objp->setinfo)) {
    253        1.1      fvdl 		return (FALSE);
    254        1.1      fvdl 	}
    255        1.1      fvdl 	if (!xdr_int(xdrs, &objp->unsetinfo)) {
    256        1.1      fvdl 		return (FALSE);
    257        1.1      fvdl 	}
    258        1.1      fvdl 	if (!xdr_rpcbs_addrlist_ptr(xdrs, &objp->addrinfo)) {
    259        1.1      fvdl 		return (FALSE);
    260        1.1      fvdl 	}
    261        1.1      fvdl 	return (TRUE);
    262        1.1      fvdl }
    263        1.1      fvdl 
    264        1.1      fvdl /*
    265        1.1      fvdl  * One rpcb_stat structure is returned for each version of rpcbind
    266        1.1      fvdl  * being monitored.
    267        1.1      fvdl  */
    268        1.1      fvdl bool_t
    269        1.9       abs xdr_rpcb_stat_byvers(XDR *xdrs, rpcb_stat_byvers objp)
    270        1.1      fvdl {
    271        1.2  christos 	if (!xdr_vector(xdrs, (char *)(void *)objp, RPCBVERS_STAT,
    272        1.8  christos 	    (u_int)sizeof (rpcb_stat), (xdrproc_t)xdr_rpcb_stat)) {
    273        1.1      fvdl 		return (FALSE);
    274        1.1      fvdl 	}
    275        1.1      fvdl 	return (TRUE);
    276        1.1      fvdl }
    277