diff options
author | Guy Harris <guy@alum.mit.edu> | 2017-01-18 13:36:27 -0800 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2017-01-18 13:36:27 -0800 |
commit | 2a6286aa06b043240dd8c3524668455562d466d8 (patch) | |
tree | 062ee1df238c3e113a0451e60bb2b030867ffb17 /fad-getad.c | |
parent | 5fa9ce62e3235688ce3ed5928cbce7754ec6291c (diff) |
Have a pcap_if_list_t structure for use by the findalldevs code.
It's not part of the API, but it's an internal structure used by the
findalldevs code. Currently, it just has a pointer to the beginning of
the list, but it could change in order to speed up the process of adding
to the list.
Diffstat (limited to 'fad-getad.c')
-rw-r--r-- | fad-getad.c | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/fad-getad.c b/fad-getad.c index b67b5cdc..a4625dfd 100644 --- a/fad-getad.c +++ b/fad-getad.c @@ -144,10 +144,9 @@ get_sa_len(struct sockaddr *addr) * could be opened. */ int -pcap_findalldevs_interfaces(pcap_if_t **alldevsp, char *errbuf, +pcap_findalldevs_interfaces(pcap_if_list_t *devlistp, char *errbuf, int (*check_usable)(const char *)) { - pcap_if_t *devlist = NULL; struct ifaddrs *ifap, *ifa; struct sockaddr *addr, *netmask, *broadaddr, *dstaddr; size_t addr_size, broadaddr_size, dstaddr_size; @@ -265,7 +264,7 @@ pcap_findalldevs_interfaces(pcap_if_t **alldevsp, char *errbuf, /* * Add information for this address to the list. */ - if (add_addr_to_iflist(&devlist, ifa->ifa_name, + if (add_addr_to_iflist(devlistp, ifa->ifa_name, if_flags_to_pcap_flags(ifa->ifa_name, ifa->ifa_flags), addr, addr_size, netmask, addr_size, broadaddr, broadaddr_size, dstaddr, dstaddr_size, @@ -277,16 +276,5 @@ pcap_findalldevs_interfaces(pcap_if_t **alldevsp, char *errbuf, freeifaddrs(ifap); - if (ret == -1) { - /* - * We had an error; free the list we've been constructing. - */ - if (devlist != NULL) { - pcap_freealldevs(devlist); - devlist = NULL; - } - } - - *alldevsp = devlist; return (ret); } |