xref: /aosp_15_r20/external/libwebsockets/lib/misc/getifaddrs.h (revision 1c60b9aca93fdbc9b5f19b2d2194c91294b22281)
1*1c60b9acSAndroid Build Coastguard Worker #ifndef LWS_HAVE_GETIFADDRS
2*1c60b9acSAndroid Build Coastguard Worker #define LWS_HAVE_GETIFADDRS 0
3*1c60b9acSAndroid Build Coastguard Worker #endif
4*1c60b9acSAndroid Build Coastguard Worker 
5*1c60b9acSAndroid Build Coastguard Worker #if LWS_HAVE_GETIFADDRS
6*1c60b9acSAndroid Build Coastguard Worker #include <sys/types.h>
7*1c60b9acSAndroid Build Coastguard Worker #include <ifaddrs.h>
8*1c60b9acSAndroid Build Coastguard Worker #else
9*1c60b9acSAndroid Build Coastguard Worker #ifdef __cplusplus
10*1c60b9acSAndroid Build Coastguard Worker extern "C" {
11*1c60b9acSAndroid Build Coastguard Worker #endif
12*1c60b9acSAndroid Build Coastguard Worker /*
13*1c60b9acSAndroid Build Coastguard Worker  * Copyright (c) 2000 Kungliga Tekniska H�gskolan
14*1c60b9acSAndroid Build Coastguard Worker  * (Royal Institute of Technology, Stockholm, Sweden).
15*1c60b9acSAndroid Build Coastguard Worker  * All rights reserved.
16*1c60b9acSAndroid Build Coastguard Worker  *
17*1c60b9acSAndroid Build Coastguard Worker  * Redistribution and use in source and binary forms, with or without
18*1c60b9acSAndroid Build Coastguard Worker  * modification, are permitted provided that the following conditions
19*1c60b9acSAndroid Build Coastguard Worker  * are met:
20*1c60b9acSAndroid Build Coastguard Worker  *
21*1c60b9acSAndroid Build Coastguard Worker  * 1. Redistributions of source code must retain the above copyright
22*1c60b9acSAndroid Build Coastguard Worker  *    notice, this list of conditions and the following disclaimer.
23*1c60b9acSAndroid Build Coastguard Worker  *
24*1c60b9acSAndroid Build Coastguard Worker  * 2. Redistributions in binary form must reproduce the above copyright
25*1c60b9acSAndroid Build Coastguard Worker  *    notice, this list of conditions and the following disclaimer in the
26*1c60b9acSAndroid Build Coastguard Worker  *    documentation and/or other materials provided with the distribution.
27*1c60b9acSAndroid Build Coastguard Worker  *
28*1c60b9acSAndroid Build Coastguard Worker  * 3. Neither the name of the Institute nor the names of its contributors
29*1c60b9acSAndroid Build Coastguard Worker  *    may be used to endorse or promote products derived from this software
30*1c60b9acSAndroid Build Coastguard Worker  *    without specific prior written permission.
31*1c60b9acSAndroid Build Coastguard Worker  *
32*1c60b9acSAndroid Build Coastguard Worker  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
33*1c60b9acSAndroid Build Coastguard Worker  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
34*1c60b9acSAndroid Build Coastguard Worker  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
35*1c60b9acSAndroid Build Coastguard Worker  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
36*1c60b9acSAndroid Build Coastguard Worker  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
37*1c60b9acSAndroid Build Coastguard Worker  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
38*1c60b9acSAndroid Build Coastguard Worker  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39*1c60b9acSAndroid Build Coastguard Worker  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
40*1c60b9acSAndroid Build Coastguard Worker  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
41*1c60b9acSAndroid Build Coastguard Worker  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
42*1c60b9acSAndroid Build Coastguard Worker  * SUCH DAMAGE.
43*1c60b9acSAndroid Build Coastguard Worker  */
44*1c60b9acSAndroid Build Coastguard Worker 
45*1c60b9acSAndroid Build Coastguard Worker /* $KTH: ifaddrs.hin,v 1.3 2000/12/11 00:01:13 assar Exp $ */
46*1c60b9acSAndroid Build Coastguard Worker 
47*1c60b9acSAndroid Build Coastguard Worker #ifndef ifaddrs_h_7467027A95AD4B5C8DDD40FE7D973791
48*1c60b9acSAndroid Build Coastguard Worker #define ifaddrs_h_7467027A95AD4B5C8DDD40FE7D973791
49*1c60b9acSAndroid Build Coastguard Worker 
50*1c60b9acSAndroid Build Coastguard Worker /*
51*1c60b9acSAndroid Build Coastguard Worker  * the interface is defined in terms of the fields below, and this is
52*1c60b9acSAndroid Build Coastguard Worker  * sometimes #define'd, so there seems to be no simple way of solving
53*1c60b9acSAndroid Build Coastguard Worker  * this and this seemed the best. */
54*1c60b9acSAndroid Build Coastguard Worker 
55*1c60b9acSAndroid Build Coastguard Worker #undef ifa_dstaddr
56*1c60b9acSAndroid Build Coastguard Worker 
57*1c60b9acSAndroid Build Coastguard Worker struct ifaddrs {
58*1c60b9acSAndroid Build Coastguard Worker 	struct ifaddrs *ifa_next;
59*1c60b9acSAndroid Build Coastguard Worker 	char *ifa_name;
60*1c60b9acSAndroid Build Coastguard Worker 	unsigned int ifa_flags;
61*1c60b9acSAndroid Build Coastguard Worker 	struct sockaddr *ifa_addr;
62*1c60b9acSAndroid Build Coastguard Worker 	struct sockaddr *ifa_netmask;
63*1c60b9acSAndroid Build Coastguard Worker 	struct sockaddr *ifa_dstaddr;
64*1c60b9acSAndroid Build Coastguard Worker 	void *ifa_data;
65*1c60b9acSAndroid Build Coastguard Worker };
66*1c60b9acSAndroid Build Coastguard Worker 
67*1c60b9acSAndroid Build Coastguard Worker #ifndef ifa_broadaddr
68*1c60b9acSAndroid Build Coastguard Worker #define ifa_broadaddr ifa_dstaddr
69*1c60b9acSAndroid Build Coastguard Worker #endif
70*1c60b9acSAndroid Build Coastguard Worker 
71*1c60b9acSAndroid Build Coastguard Worker int getifaddrs(struct ifaddrs **);
72*1c60b9acSAndroid Build Coastguard Worker 
73*1c60b9acSAndroid Build Coastguard Worker void freeifaddrs(struct ifaddrs *);
74*1c60b9acSAndroid Build Coastguard Worker 
75*1c60b9acSAndroid Build Coastguard Worker #endif /* __ifaddrs_h__ */
76*1c60b9acSAndroid Build Coastguard Worker 
77*1c60b9acSAndroid Build Coastguard Worker #ifdef __cplusplus
78*1c60b9acSAndroid Build Coastguard Worker }
79*1c60b9acSAndroid Build Coastguard Worker #endif
80*1c60b9acSAndroid Build Coastguard Worker #endif
81