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