fad-win32.c (162012) | fad-win32.c (172677) |
---|---|
1/* | 1/* |
2 * Copyright (c) 2002 - 2003 3 * NetGroup, Politecnico di Torino (Italy) | 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. | 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 nor the names of its 16 * contributors may be used to endorse or promote products derived from 17 * this software without specific prior written permission. | 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. |
18 * 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 * 31 */ 32 33#ifndef lint 34static const char rcsid[] _U_ = | 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_ = |
35 "@(#) $Header: /tcpdump/master/libpcap/fad-win32.c,v 1.11.2.1 2005/09/01 22:07:41 risso Exp $ (LBL)"; | 36 "@(#) $Header: /tcpdump/master/libpcap/fad-win32.c,v 1.11.2.3 2006/02/22 17:09:32 gianluca Exp $ (LBL)"; |
36#endif 37 38#ifdef HAVE_CONFIG_H 39#include "config.h" 40#endif 41 42#include <pcap.h> 43#include <pcap-int.h> | 37#endif 38 39#ifdef HAVE_CONFIG_H 40#include "config.h" 41#endif 42 43#include <pcap.h> 44#include <pcap-int.h> |
44#include <packet32.h> | 45#include <Packet32.h> |
45 46#include <errno.h> 47 48/* 49 * Add an entry to the list of addresses for an interface. 50 * "curdev" is the entry for that interface. 51 */ 52static int --- 166 unchanged lines hidden (view full) --- 219{ 220 pcap_if_t *devlist = NULL; 221 int ret = 0; 222 const char *desc; 223 char *AdaptersName; 224 ULONG NameLength; 225 char *name; 226 | 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 |
227 if(!PacketGetAdapterNames(NULL, &NameLength) && NameLength == 0) | 228 if (!PacketGetAdapterNames(NULL, &NameLength)) |
228 { | 229 { |
229 /* 230 * If PacketGetAdapterNames *and* sets the lenght of the buffer to zero, 231 * it means there was an error. 232 */ 233 snprintf(errbuf, PCAP_ERRBUF_SIZE, "PacketGetAdapterNames failed: %s", pcap_win32strerror()); 234 *alldevsp = NULL; 235 return -1; | 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 } |
236 } 237 238 if (NameLength > 0) 239 AdaptersName = (char*) malloc(NameLength); 240 else 241 { | 239 } 240 241 if (NameLength > 0) 242 AdaptersName = (char*) malloc(NameLength); 243 else 244 { |
242 snprintf(errbuf, PCAP_ERRBUF_SIZE, "no adapters found."); | |
243 *alldevsp = NULL; 244 return 0; 245 } 246 if (AdaptersName == NULL) 247 { 248 snprintf(errbuf, PCAP_ERRBUF_SIZE, "Cannot allocate enough memory to list the adapters."); 249 return (-1); 250 } --- 66 unchanged lines hidden --- | 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 --- |