1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /*====================================================================*
- *
- * Copyright (c) 2013 Qualcomm Atheros, Inc.
- *
- * All rights reserved.
- *
- *====================================================================*/
- /*====================================================================*
- *
- * char * pcap_indextoname (unsigned ifindex, char * ifname);
- *
- * ether.h
- *
- * a WinPcap version of POSIX if_indextoname function; return error
- * in non-pcap environments; set errno to ENXIO on error on MacOSX;
- *
- * see The Open Group Base Specifications Issue 6 IEEE Std 1003.1,
- * 2004 Edition for a description of this function;
- *
- *--------------------------------------------------------------------*/
- #ifndef PCAP_INDEXTONAME_SOURCE
- #define PCAP_INDEXTONAME_SOURCE
- #include <pcap.h>
- #include <string.h>
- #include <errno.h>
- #include "../ether/ether.h"
- char * pcap_indextoname (unsigned ifindex, char * ifname)
- {
- #if defined (WINPCAP) || defined (LIBPCAP)
- char buffer [PCAP_ERRBUF_SIZE];
- pcap_if_t * devices = (pcap_if_t *) (0);
- pcap_if_t * device;
- if ((index--) && (pcap_findalldevs (& devices, buffer) != - 1))
- {
- for (device = devices; device; device = device->next)
- {
- if (! index--)
- {
- memcpy (ifname, device->name, strlen (device->name));
- pcap_freealldevs (devices);
- return (ifname);
- }
- }
- pcap_freealldevs (devices);
- }
- #endif
- #if defined (__APPLE__)
- errno = ENXIO;
- #endif
- return ((char *) (0));
- }
- #endif
|