diff options
author | 2020-03-05 21:23:21 +1100 | |
---|---|---|
committer | 2020-03-05 21:23:21 +1100 | |
commit | 5bce46bd7561ae1857c7e17614133f01f984ae78 (patch) | |
tree | 5df802bbf88b78604f359e9691f395fd2fea4bec /3rdparty/winpcap/Examples-pcap/iflist/iflist.c | |
parent | 72082dc6d70b62ad921d5ac680c628c9ce158271 (diff) |
Removed winpcap and cleaned up network module selection.
(nw) The pcap.h header itself has the problematic original BSD license,
including the obnoxious advertising clause. Using tap/tun networking on
Windows provides a much better experience, so the extra setup is worth
it. This patch also allows you to enable pcap on platforms where it's
disabled by default with USE_PCAP=1 if you really want to use it.
Diffstat (limited to '3rdparty/winpcap/Examples-pcap/iflist/iflist.c')
-rw-r--r-- | 3rdparty/winpcap/Examples-pcap/iflist/iflist.c | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/3rdparty/winpcap/Examples-pcap/iflist/iflist.c b/3rdparty/winpcap/Examples-pcap/iflist/iflist.c deleted file mode 100644 index d462afb1ef6..00000000000 --- a/3rdparty/winpcap/Examples-pcap/iflist/iflist.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (c) 1999 - 2005 NetGroup, Politecnico di Torino (Italy) - * Copyright (c) 2005 - 2006 CACE Technologies, Davis (California) - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Politecnico di Torino, CACE Technologies - * nor the names of its contributors may be used to endorse or promote - * products derived from this software without specific prior written - * permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#ifdef _MSC_VER -/* - * we do not want the warnings about the old deprecated and unsecure CRT functions - * since these examples can be compiled under *nix as well - */ -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include "pcap.h" - -#ifndef WIN32 - #include <sys/socket.h> - #include <netinet/in.h> -#else - #include <winsock.h> -#endif - - -// Function prototypes -void ifprint(pcap_if_t *d); -char *iptos(u_long in); -char* ip6tos(struct sockaddr *sockaddr, char *address, int addrlen); - - -int main() -{ - pcap_if_t *alldevs; - pcap_if_t *d; - char errbuf[PCAP_ERRBUF_SIZE+1]; - - /* Retrieve the device list */ - if(pcap_findalldevs(&alldevs, errbuf) == -1) - { - fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf); - exit(1); - } - - /* Scan the list printing every entry */ - for(d=alldevs;d;d=d->next) - { - ifprint(d); - } - - /* Free the device list */ - pcap_freealldevs(alldevs); - - return 1; -} - - - -/* Print all the available information on the given interface */ -void ifprint(pcap_if_t *d) -{ - pcap_addr_t *a; - char ip6str[128]; - - /* Name */ - printf("%s\n",d->name); - - /* Description */ - if (d->description) - printf("\tDescription: %s\n",d->description); - - /* Loopback Address*/ - printf("\tLoopback: %s\n",(d->flags & PCAP_IF_LOOPBACK)?"yes":"no"); - - /* IP addresses */ - for(a=d->addresses;a;a=a->next) { - printf("\tAddress Family: #%d\n",a->addr->sa_family); - - switch(a->addr->sa_family) - { - case AF_INET: - printf("\tAddress Family Name: AF_INET\n"); - if (a->addr) - printf("\tAddress: %s\n",iptos(((struct sockaddr_in *)a->addr)->sin_addr.s_addr)); - if (a->netmask) - printf("\tNetmask: %s\n",iptos(((struct sockaddr_in *)a->netmask)->sin_addr.s_addr)); - if (a->broadaddr) - printf("\tBroadcast Address: %s\n",iptos(((struct sockaddr_in *)a->broadaddr)->sin_addr.s_addr)); - if (a->dstaddr) - printf("\tDestination Address: %s\n",iptos(((struct sockaddr_in *)a->dstaddr)->sin_addr.s_addr)); - break; - - case AF_INET6: - printf("\tAddress Family Name: AF_INET6\n"); -#ifndef __MINGW32__ /* Cygnus doesn't have IPv6 */ - if (a->addr) - printf("\tAddress: %s\n", ip6tos(a->addr, ip6str, sizeof(ip6str))); -#endif - break; - - default: - printf("\tAddress Family Name: Unknown\n"); - break; - } - } - printf("\n"); -} - -/* From tcptraceroute, convert a numeric IP address to a string */ -#define IPTOSBUFFERS 12 -char *iptos(u_long in) -{ - static char output[IPTOSBUFFERS][3*4+3+1]; - static short which; - u_char *p; - - p = (u_char *)∈ - which = (which + 1 == IPTOSBUFFERS ? 0 : which + 1); - sprintf(output[which], "%d.%d.%d.%d", p[0], p[1], p[2], p[3]); - return output[which]; -} - -#ifndef __MINGW32__ /* Cygnus doesn't have IPv6 */ -char* ip6tos(struct sockaddr *sockaddr, char *address, int addrlen) -{ - socklen_t sockaddrlen; - - #ifdef WIN32 - sockaddrlen = sizeof(struct sockaddr_in6); - #else - sockaddrlen = sizeof(struct sockaddr_storage); - #endif - - - if(getnameinfo(sockaddr, - sockaddrlen, - address, - addrlen, - NULL, - 0, - NI_NUMERICHOST) != 0) address = NULL; - - return address; -} -#endif /* __MINGW32__ */ - |