June 2025 | ||||||
Mo | Tu | We | Th | Fr | Sa | Su |
26 | 27 | 28 | 29 | 30 | 31 | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 1 | 2 | 3 | 4 | 5 | 6 |
01: /* 02: * pmap_clnt.h 03: * Supplies C routines to get to portmap services. 04: * 05: * Copyright (c) 2010, Oracle America, Inc. 06: * 07: * Redistribution and use in source and binary forms, with or without 08: * modification, are permitted provided that the following conditions are 09: * met: 10: * 11: * * Redistributions of source code must retain the above copyright 12: * notice, this list of conditions and the following disclaimer. 13: * * Redistributions in binary form must reproduce the above 14: * copyright notice, this list of conditions and the following 15: * disclaimer in the documentation and/or other materials 16: * provided with the distribution. 17: * * Neither the name of the "Oracle America, Inc." nor the names of its 18: * contributors may be used to endorse or promote products derived 19: * from this software without specific prior written permission. 20: * 21: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24: * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25: * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 26: * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 28: * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 29: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 30: * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 31: * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 32: * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 33: */ 34: 35: #ifndef _RPC_PMAP_CLNT_H 36: #define _RPC_PMAP_CLNT_H 1 37: 38: #include <features.h> 39: #include <rpc/types.h> 40: #include <rpc/xdr.h> 41: #include <rpc/clnt.h> 42: 43: __BEGIN_DECLS 44: 45: typedef bool_t (*resultproc_t) (caddr_t __resp, struct sockaddr_in *__raddr); 46: 47: /* 48: * Usage: 49: * success = pmap_set(program, version, protocol, port); 50: * success = pmap_unset(program, version); 51: * port = pmap_getport(address, program, version, protocol); 52: * head = pmap_getmaps(address); 53: * clnt_stat = pmap_rmtcall(address, program, version, procedure, 54: * xdrargs, argsp, xdrres, resp, tout, port_ptr) 55: * (works for udp only.) 56: * clnt_stat = clnt_broadcast(program, version, procedure, 57: * xdrargs, argsp, xdrres, resp, eachresult) 58: * (like pmap_rmtcall, except the call is broadcasted to all 59: * locally connected nets. For each valid response received, 60: * the procedure eachresult is called. Its form is: 61: * done = eachresult(resp, raddr) 62: * bool_t done; 63: * caddr_t resp; 64: * struct sockaddr_in raddr; 65: * where resp points to the results of the call and raddr is the 66: * address if the responder to the broadcast. 67: */ 68: 69: extern bool_t pmap_set (__const u_long __program, __const u_long __vers, 70: int __protocol, u_short __port) __THROW; 71: extern bool_t pmap_unset (__const u_long __program, __const u_long __vers) 72: __THROW; 73: extern struct pmaplist *pmap_getmaps (struct sockaddr_in *__address) __THROW; 74: extern enum clnt_stat pmap_rmtcall (struct sockaddr_in *__addr, 75: __const u_long __prog, 76: __const u_long __vers, 77: __const u_long __proc, 78: xdrproc_t __xdrargs, 79: caddr_t __argsp, xdrproc_t __xdrres, 80: caddr_t __resp, struct timeval __tout, 81: u_long *__port_ptr) __THROW; 82: extern enum clnt_stat clnt_broadcast (__const u_long __prog, 83: __const u_long __vers, 84: __const u_long __proc, xdrproc_t __xargs, 85: caddr_t __argsp, xdrproc_t __xresults, 86: caddr_t __resultsp, 87: resultproc_t __eachresult) __THROW; 88: extern u_short pmap_getport (struct sockaddr_in *__address, 89: __const u_long __program, 90: __const u_long __version, u_int __protocol) 91: __THROW; 92: 93: __END_DECLS 94: 95: #endif /* rpc/pmap_clnt.h */ 96: