1/* |
2 * Copyright (c) 2002 - 2005 NetGroup, Politecnico di Torino (Italy) 3 * Copyright (c) 2005 - 2006 CACE Technologies, Davis (California) |
4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. |
15 * 3. Neither the name of the Politecnico di Torino, CACE Technologies 16 * nor the names of its contributors may be used to endorse or promote 17 * products derived from this software without specific prior written 18 * permission. |
19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 * 32 */ 33 34#ifndef lint 35static const char rcsid[] _U_ = |
36 "@(#) $Header: /tcpdump/master/libpcap/fad-win32.c,v 1.11.2.3 2006/02/22 17:09:32 gianluca Exp $ (LBL)"; |
37#endif 38 39#ifdef HAVE_CONFIG_H 40#include "config.h" 41#endif 42 43#include <pcap.h> 44#include <pcap-int.h> |
45#include <Packet32.h> |
46 47#include <errno.h> 48 49/* 50 * Add an entry to the list of addresses for an interface. 51 * "curdev" is the entry for that interface. 52 */ 53static int --- 166 unchanged lines hidden (view full) --- 220{ 221 pcap_if_t *devlist = NULL; 222 int ret = 0; 223 const char *desc; 224 char *AdaptersName; 225 ULONG NameLength; 226 char *name; 227 |
228 if (!PacketGetAdapterNames(NULL, &NameLength)) |
229 { |
230 DWORD last_error = GetLastError(); 231 232 if (last_error != ERROR_INSUFFICIENT_BUFFER) 233 { 234 snprintf(errbuf, PCAP_ERRBUF_SIZE, 235 "PacketGetAdapterNames: %s", 236 pcap_win32strerror()); 237 return (-1); 238 } |
239 } 240 241 if (NameLength > 0) 242 AdaptersName = (char*) malloc(NameLength); 243 else 244 { |
245 *alldevsp = NULL; 246 return 0; 247 } 248 if (AdaptersName == NULL) 249 { 250 snprintf(errbuf, PCAP_ERRBUF_SIZE, "Cannot allocate enough memory to list the adapters."); 251 return (-1); 252 } --- 66 unchanged lines hidden --- |