xref: /titanic_54/usr/src/cmd/rpcbind/rpcbind.h (revision 86632942f304299ddf8de785093de7383cda6137)
17c478bd9Sstevel@tonic-gate /*
27c478bd9Sstevel@tonic-gate  * CDDL HEADER START
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
57c478bd9Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
67c478bd9Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
77c478bd9Sstevel@tonic-gate  * with the License.
87c478bd9Sstevel@tonic-gate  *
97c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
107c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
117c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
127c478bd9Sstevel@tonic-gate  * and limitations under the License.
137c478bd9Sstevel@tonic-gate  *
147c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
157c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
167c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
177c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
187c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
197c478bd9Sstevel@tonic-gate  *
207c478bd9Sstevel@tonic-gate  * CDDL HEADER END
217c478bd9Sstevel@tonic-gate  */
227c478bd9Sstevel@tonic-gate /*
23*86632942Sssdevi  * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
247c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
257c478bd9Sstevel@tonic-gate  */
267c478bd9Sstevel@tonic-gate /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */
277c478bd9Sstevel@tonic-gate /* All Rights Reserved */
287c478bd9Sstevel@tonic-gate /*
297c478bd9Sstevel@tonic-gate  * University Copyright- Copyright (c) 1982, 1986, 1988
307c478bd9Sstevel@tonic-gate  * The Regents of the University of California
317c478bd9Sstevel@tonic-gate  * All Rights Reserved
327c478bd9Sstevel@tonic-gate  *
337c478bd9Sstevel@tonic-gate  * University Acknowledgment- Portions of this document are derived from
347c478bd9Sstevel@tonic-gate  * software developed by the University of California, Berkeley, and its
357c478bd9Sstevel@tonic-gate  * contributors.
367c478bd9Sstevel@tonic-gate  */
377c478bd9Sstevel@tonic-gate 
387c478bd9Sstevel@tonic-gate /*
397c478bd9Sstevel@tonic-gate  * rpcbind.h
407c478bd9Sstevel@tonic-gate  * The common header declarations
417c478bd9Sstevel@tonic-gate  */
427c478bd9Sstevel@tonic-gate 
437c478bd9Sstevel@tonic-gate #ifndef _RPCBIND_H
447c478bd9Sstevel@tonic-gate #define	_RPCBIND_H
457c478bd9Sstevel@tonic-gate 
467c478bd9Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
477c478bd9Sstevel@tonic-gate 
487c478bd9Sstevel@tonic-gate #ifdef PORTMAP
497c478bd9Sstevel@tonic-gate #include <rpc/pmap_prot.h>
507c478bd9Sstevel@tonic-gate #endif
517c478bd9Sstevel@tonic-gate #include <rpc/rpcb_prot.h>
527c478bd9Sstevel@tonic-gate 
537c478bd9Sstevel@tonic-gate #include <tcpd.h>
547c478bd9Sstevel@tonic-gate 
557c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
567c478bd9Sstevel@tonic-gate extern "C" {
577c478bd9Sstevel@tonic-gate #endif
587c478bd9Sstevel@tonic-gate 
597c478bd9Sstevel@tonic-gate extern int debugging;
607c478bd9Sstevel@tonic-gate extern int doabort;
617c478bd9Sstevel@tonic-gate extern rpcblist_ptr list_rbl;	/* A list of version 3 & 4 rpcbind services */
627c478bd9Sstevel@tonic-gate extern char *loopback_dg;	/* CLTS loopback transport, for set/unset */
637c478bd9Sstevel@tonic-gate extern char *loopback_vc;	/* COTS loopback transport, for set/unset */
647c478bd9Sstevel@tonic-gate extern char *loopback_vc_ord;	/* COTS_ORD loopback transport, for set/unset */
657c478bd9Sstevel@tonic-gate 
667c478bd9Sstevel@tonic-gate #ifdef PORTMAP
677c478bd9Sstevel@tonic-gate extern pmaplist *list_pml;	/* A list of version 2 rpcbind services */
687c478bd9Sstevel@tonic-gate extern char *udptrans;		/* Name of UDP transport */
697c478bd9Sstevel@tonic-gate extern char *tcptrans;		/* Name of TCP transport */
707c478bd9Sstevel@tonic-gate extern char *udp_uaddr;		/* Universal UDP address */
717c478bd9Sstevel@tonic-gate extern char *tcp_uaddr;		/* Universal TCP address */
727c478bd9Sstevel@tonic-gate #endif
737c478bd9Sstevel@tonic-gate 
747c478bd9Sstevel@tonic-gate extern char *mergeaddr();
757c478bd9Sstevel@tonic-gate extern int add_bndlist();
767c478bd9Sstevel@tonic-gate extern int create_rmtcall_fd();
777c478bd9Sstevel@tonic-gate extern bool_t is_bound();
787c478bd9Sstevel@tonic-gate extern void my_svc_run();
797c478bd9Sstevel@tonic-gate 
807c478bd9Sstevel@tonic-gate /* TCP wrapper functions and variables. */
817c478bd9Sstevel@tonic-gate extern boolean_t localxprt(SVCXPRT *, boolean_t);
827c478bd9Sstevel@tonic-gate extern void qsyslog(int pri, const char *fmt, ...);
837c478bd9Sstevel@tonic-gate extern boolean_t rpcb_check(SVCXPRT *, rpcproc_t, boolean_t);
847c478bd9Sstevel@tonic-gate extern void rpcb_log(boolean_t, SVCXPRT *, rpcproc_t, rpcprog_t, boolean_t);
857c478bd9Sstevel@tonic-gate extern boolean_t allow_indirect, wrap_enabled, verboselog;
867c478bd9Sstevel@tonic-gate 
877c478bd9Sstevel@tonic-gate #define	svc_getgencaller(transp) \
887c478bd9Sstevel@tonic-gate 	((struct sockaddr_gen *)svc_getrpccaller((transp))->buf)
897c478bd9Sstevel@tonic-gate 
907c478bd9Sstevel@tonic-gate #define	RPCB_CHECK(xprt, proc) \
917c478bd9Sstevel@tonic-gate 	if (wrap_enabled && !rpcb_check((xprt), (proc), B_FALSE)) \
927c478bd9Sstevel@tonic-gate 		return
937c478bd9Sstevel@tonic-gate 
947c478bd9Sstevel@tonic-gate #define	PMAP_CHECK(xprt, proc) \
957c478bd9Sstevel@tonic-gate 	if (wrap_enabled && !rpcb_check((xprt), (proc), B_TRUE)) \
967c478bd9Sstevel@tonic-gate 		return
977c478bd9Sstevel@tonic-gate 
987c478bd9Sstevel@tonic-gate #define	PMAP_CHECK_RET(xprt, proc, ret) \
997c478bd9Sstevel@tonic-gate 	if (wrap_enabled && !rpcb_check((xprt), (proc), B_TRUE)) \
1007c478bd9Sstevel@tonic-gate 		return (ret)
1017c478bd9Sstevel@tonic-gate 
1027c478bd9Sstevel@tonic-gate #define	RPCB_LOG(xprt, proc, prog) \
1037c478bd9Sstevel@tonic-gate 	if (wrap_enabled) \
1047c478bd9Sstevel@tonic-gate 	    rpcb_log(B_TRUE, (xprt), (proc), (prog), B_FALSE)
1057c478bd9Sstevel@tonic-gate 
1067c478bd9Sstevel@tonic-gate #define	PMAP_LOG(ans, xprt, proc, prog) \
1077c478bd9Sstevel@tonic-gate 	if (wrap_enabled) \
1087c478bd9Sstevel@tonic-gate 	    rpcb_log(ans, (xprt), (proc), (prog), B_TRUE)
1097c478bd9Sstevel@tonic-gate 
1107c478bd9Sstevel@tonic-gate extern bool_t map_set(), map_unset();
1117c478bd9Sstevel@tonic-gate 
1127c478bd9Sstevel@tonic-gate /* Statistics gathering functions */
1137c478bd9Sstevel@tonic-gate extern void rpcbs_procinfo();
1147c478bd9Sstevel@tonic-gate extern void rpcbs_set();
1157c478bd9Sstevel@tonic-gate extern void rpcbs_unset();
1167c478bd9Sstevel@tonic-gate extern void rpcbs_getaddr();
1177c478bd9Sstevel@tonic-gate extern void rpcbs_rmtcall();
1187c478bd9Sstevel@tonic-gate extern rpcb_stat_byvers *rpcbproc_getstat();
1197c478bd9Sstevel@tonic-gate 
1207c478bd9Sstevel@tonic-gate extern struct netconfig *rpcbind_get_conf();
121*86632942Sssdevi extern void rpcbind_abort() __NORETURN;
1227c478bd9Sstevel@tonic-gate 
1237c478bd9Sstevel@tonic-gate /* Common functions shared between versions */
1247c478bd9Sstevel@tonic-gate extern void rpcbproc_callit_com();
1257c478bd9Sstevel@tonic-gate extern bool_t *rpcbproc_set_com();
1267c478bd9Sstevel@tonic-gate extern bool_t *rpcbproc_unset_com();
1277c478bd9Sstevel@tonic-gate extern ulong_t *rpcbproc_gettime_com();
1287c478bd9Sstevel@tonic-gate extern struct netbuf *rpcbproc_uaddr2taddr_com();
1297c478bd9Sstevel@tonic-gate extern char **rpcbproc_taddr2uaddr_com();
1307c478bd9Sstevel@tonic-gate extern char **rpcbproc_getaddr_com();
1317c478bd9Sstevel@tonic-gate extern void delete_prog();
1327c478bd9Sstevel@tonic-gate 
1337c478bd9Sstevel@tonic-gate extern uid_t rpcb_caller_uid(SVCXPRT *);
1347c478bd9Sstevel@tonic-gate 
1357c478bd9Sstevel@tonic-gate /* For different getaddr semantics */
1367c478bd9Sstevel@tonic-gate #define	RPCB_ALLVERS 0
1377c478bd9Sstevel@tonic-gate #define	RPCB_ONEVERS 1
1387c478bd9Sstevel@tonic-gate 
1397c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
1407c478bd9Sstevel@tonic-gate }
1417c478bd9Sstevel@tonic-gate #endif
1427c478bd9Sstevel@tonic-gate 
1437c478bd9Sstevel@tonic-gate #endif /* _RPCBIND_H */
144