diff --git a/cpu/native/net/wpcap.c b/cpu/native/net/wpcap.c index 3b2e59c55..23e325080 100644 --- a/cpu/native/net/wpcap.c +++ b/cpu/native/net/wpcap.c @@ -30,7 +30,7 @@ * * Author: Oliver Schmidt * - * $Id: wpcap.c,v 1.5 2007/04/08 20:06:56 oliverschmidt Exp $ + * $Id: wpcap.c,v 1.6 2007/04/11 00:21:28 oliverschmidt Exp $ */ #define WIN32_LEAN_AND_MEAN @@ -41,15 +41,19 @@ #include #include +#include /* Avoid 'conflicting types' errors. */ #define htonl #define htons #include "contiki-net.h" +#include "sys/log.h" #include "wpcap.h" +#ifdef __CYGWIN__ __attribute__((dllimport)) extern char **__argv[]; +#endif struct pcap; @@ -64,13 +68,13 @@ struct pcap_if { struct sockaddr *broadaddr; struct sockaddr *dstaddr; } *addresses; - uint32_t flags; + DWORD flags; }; struct pcap_pkthdr { struct timeval ts; - uint32_t caplen; - uint32_t len; + DWORD caplen; + DWORD len; }; static struct pcap *pcap; @@ -101,7 +105,7 @@ init_pcap(struct in_addr addr) } while(interfaces != NULL) { - printf("init_pcap: found interface: %s\n", interfaces->description); + log_message("init_pcap: found interface: ", interfaces->description); if(interfaces->addresses != NULL && interfaces->addresses->addr != NULL && @@ -109,7 +113,7 @@ init_pcap(struct in_addr addr) struct in_addr interface_addr; interface_addr = ((struct sockaddr_in *)interfaces->addresses->addr)->sin_addr; - printf("init_pcap: with address: %s\n", inet_ntoa(interface_addr)); + log_message("init_pcap: with address: ", inet_ntoa(interface_addr)); if(interface_addr.s_addr == addr.s_addr) { break; @@ -150,10 +154,10 @@ set_ethaddr(struct in_addr addr) while(adapters != NULL) { - char description[256]; + char buffer[256]; WideCharToMultiByte(CP_ACP, 0, adapters->Description, -1, - description, sizeof(description), NULL, NULL); - printf("set_ethaddr: found adapter: %s\n", description); + buffer, sizeof(buffer), NULL, NULL); + log_message("set_ethaddr: found adapter: ", buffer); if(adapters->FirstUnicastAddress != NULL && adapters->FirstUnicastAddress->Address.lpSockaddr != NULL && @@ -161,16 +165,17 @@ set_ethaddr(struct in_addr addr) struct in_addr adapter_addr; adapter_addr = ((struct sockaddr_in *)adapters->FirstUnicastAddress->Address.lpSockaddr)->sin_addr; - printf("set_ethaddr: with address: %s\n", inet_ntoa(adapter_addr)); + log_message("set_ethaddr: with address: ", inet_ntoa(adapter_addr)); if(adapter_addr.s_addr == addr.s_addr) { if(adapters->PhysicalAddressLength != 6) { error_exit("ip addr specified on cmdline does not belong to an ethernet card\n"); } - printf("set_ethaddr: ethernetaddr: %02X-%02X-%02X-%02X-%02X-%02X\n", - adapters->PhysicalAddress[0], adapters->PhysicalAddress[1], - adapters->PhysicalAddress[2], adapters->PhysicalAddress[3], - adapters->PhysicalAddress[4], adapters->PhysicalAddress[5]); + wsprintf(buffer, "%02X-%02X-%02X-%02X-%02X-%02X", + adapters->PhysicalAddress[0], adapters->PhysicalAddress[1], + adapters->PhysicalAddress[2], adapters->PhysicalAddress[3], + adapters->PhysicalAddress[4], adapters->PhysicalAddress[5]); + log_message("set_ethaddr: ethernetaddr: ", buffer); uip_setethaddr((*(struct uip_eth_addr *)adapters->PhysicalAddress)); break; @@ -190,11 +195,15 @@ wpcap_init(void) struct in_addr addr; HMODULE wpcap; +#ifdef __CYGWIN__ addr.s_addr = inet_addr((*__argv)[1]); +#else + addr.s_addr = inet_addr(__argv[1]); +#endif if(addr.s_addr == INADDR_NONE) { error_exit("usage: \n"); } - printf("wpcap_init: cmdline address: %s\n", inet_ntoa(addr)); + log_message("wpcap_init: cmdline address: ", inet_ntoa(addr)); wpcap = LoadLibrary("wpcap.dll"); (FARPROC)pcap_findalldevs = GetProcAddress(wpcap, "pcap_findalldevs");