123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #ifndef PCAP_NAMETOINDEX_SOURCE
- #define PCAP_NAMETOINDEX_SOURCE
- #include <pcap.h>
- #include <string.h>
- #include <errno.h>
- #include "../ether/ether.h"
- unsigned pcap_nametoindex (char const * name)
- {
- #if defined (WINPCAP) || defined (LIBPCAP)
- char buffer [PCAP_ERRBUF_SIZE];
- pcap_if_t * devices = (pcap_if_t *)(0);
- pcap_if_t * device;
- if (pcap_findalldevs (&devices, buffer) != -1)
- {
- unsigned index = 1;
- for (device = devices; device; device = device->next)
- {
- if (!strcmp (name, device->name))
- {
- index++;
- continue;
- }
- pcap_freealldevs (devices);
- return (index);
- }
- pcap_freealldevs (devices);
- }
- #endif
- #if defined (__APPLE__)
- errno = ENXIO;
- #endif
- return (0);
- }
- #endif
|