| /* $NetBSD: svc_dg.h,v 1.1 2000/06/02 23:11:16 fvdl Exp $ */ |
| /* $FreeBSD: src/include/rpc/svc_dg.h,v 1.1 2001/03/19 12:49:47 |
| * alfred Exp $ */ |
| |
| /* |
| * Copyright (c) 2009, Sun Microsystems, Inc. |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are met: |
| * - Redistributions of source code must retain the above copyright notice, |
| * this list of conditions and the following disclaimer. |
| * - Redistributions in binary form must reproduce the above copyright notice, |
| * this list of conditions and the following disclaimer in the documentation |
| * and/or other materials provided with the distribution. |
| * - Neither the name of Sun Microsystems, Inc. nor the names of its |
| * contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
| * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| * POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| /* |
| * XXX - this file exists only so that the rpcbind code can pull it in. |
| * This should go away. It should only be include by svc_dg.c and |
| * rpcb_svc_com.c in the rpcbind code. |
| */ |
| |
| #ifndef _TIRPC_SVC_DG_H_ |
| #define _TIRPC_SVC_DG_H_ |
| |
| #include <sys/socket.h> |
| #include <netinet/in.h> |
| |
| /* |
| * The following union is defined just to use SVC_CMSG_LEN macro for an |
| * array length. _GNU_SOURCE must be defined to get in6_pktinfo |
| * declaration! |
| */ |
| union in_pktinfo_u { |
| struct in_pktinfo x; |
| struct in6_pktinfo y; |
| }; |
| #define SVC_CMSG_LEN CMSG_SPACE(sizeof(union in_pktinfo_u)) |
| |
| /* |
| * kept in xprt->xp_p2 |
| */ |
| struct svc_dg_data { |
| /* XXX: optbuf should be the first field, used by ti_opts.c code */ |
| size_t su_iosz; /* size of send.recv buffer */ |
| u_int32_t su_xid; /* transaction id */ |
| XDR su_xdrs; /* XDR handle */ |
| char su_verfbody[MAX_AUTH_BYTES]; /* verifier body */ |
| void *su_cache; /* cached data, NULL if none */ |
| |
| struct msghdr su_msghdr; /* msghdr received from clnt */ |
| unsigned char su_cmsg[SVC_CMSG_LEN]; /* cmsghdr received from clnt */ |
| }; |
| |
| #define __rpcb_get_dg_xidp(x) (&((struct svc_dg_data *)(x)->xp_p2)->su_xid) |
| |
| #endif |