1 /*
2 * Copyright (c) 2016 Intel Corporation.  All rights reserved.
3 *
4 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
5 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
6 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
7 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
8 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
9 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
10 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
11 * SOFTWARE.
12 */
13 
14 #pragma once
15 
16 #include <Winsock2.h>
17 
18 /* here is minimal subset of ifaddr API required for sockets & UDP
19    providers */
20 struct ifaddrs {
21 	struct ifaddrs  *ifa_next;    /* Next item in list */
22 	char            *ifa_name;    /* Name of interface */
23 	unsigned int     ifa_flags;   /* Flags from SIOCGIFFLAGS */
24 	struct sockaddr *ifa_addr;    /* Address of interface */
25 	struct sockaddr *ifa_netmask; /* Netmask of interface */
26 
27 	struct sockaddr_storage in_addrs;
28 	struct sockaddr_storage in_netmasks;
29 
30 	char		   ad_name[16];
31 	size_t		   speed;
32 };
33 
34 int getifaddrs(struct ifaddrs **ifap);
35 void freeifaddrs(struct ifaddrs *ifa);
36 
37