<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2769" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial>The following is an update of my attempts to get WinPcap 
and it's examples to compile under MingW. These changes were applied to a fresh 
copy of wpcapsrc_3_2_alpha1 and then diff'd against the original. Testing 
involved simply compiling&nbsp;the library,&nbsp;then compiling&nbsp;the packet 
utility I've been working on, then running it to see if it worked.&nbsp;I have 
little experience with submitting changes to community edited source code so 
please bear with me.</FONT></DIV>
<DIV><FONT face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial>The first diff adjusts one of the makefiles by adding 
HAVE_REMOTE and changing the winsock library:</FONT></DIV><PRE>diff -r -d wpcapsrc_3_2_alpha1/winpcap/packetNtx/Dll/Project/GNUmakefile wpcapsrc_3_2_alpha1_mingw/winpcap/packetNtx/Dll/Project/GNUmakefile<BR>5c5<BR>&lt; OPTFLAGS = -O -D_WINNT4<BR>---<BR>&gt; OPTFLAGS = -O -D_WINNT4 -DHAVE_REMOTE<BR>11c11<BR>&lt; LIBS = -lwsock32 -lversion<BR>---<BR>&gt; LIBS = -lws2_32 -lversion</PRE>
<DIV><FONT face=Arial>Then I copied the bpf_stat structure. It originates in 
Packet32.h. BPF_MAJOR_VERSION is defined which then prevents bpf_stat from being 
defined. It appears that this sort of behavior has been run into before since 
bpf_insn appears in two places. So I've copied bpf_stat in a similiar manner. 
Probably not a good fix, but it works.</FONT></DIV><PRE>diff -r -d wpcapsrc_3_2_alpha1/winpcap/wpcap/libpcap/pcap-bpf.h wpcapsrc_3_2_alpha1_mingw/winpcap/wpcap/libpcap/pcap-bpf.h<BR>673a674,683<BR>&gt; #ifdef __MINGW32__<BR>&gt; struct bpf_stat <BR>&gt; {<BR>&gt; &nbsp;UINT bs_recv;&nbsp;<BR>&gt; &nbsp;UINT bs_drop;&nbsp;<BR>&gt; &nbsp;UINT ps_ifdrop;<BR>&gt; &nbsp;UINT bs_capt;<BR>&gt; };<BR>&gt; #endif<BR>&gt; <BR></PRE>
<DIV><FONT face=Arial>The next diff adds some things to work around a bug in the 
MinW32 headers regarding getnameinfo():</FONT></DIV><PRE>diff -r -d wpcapsrc_3_2_alpha1/winpcap/wpcap/libpcap/sockutils.h wpcapsrc_3_2_alpha1_mingw/winpcap/wpcap/libpcap/sockutils.h<BR>48a49,52<BR>&gt; /* Need windef.h for defines used in winsock2.h under MingW32 */<BR>&gt; #ifdef __MINGW32__<BR>&gt; #include &lt;windef.h&gt;<BR>&gt; #endif<BR>64a69,77<BR>&gt; /* MingW headers include this definition, but only for Windows XP and above.<BR>&gt;&nbsp;&nbsp;&nbsp; MSDN states that this function is available for most versions on Windows.<BR>&gt; */<BR>&gt; #if ((defined(__MINGW32__)) &amp;&amp; (_WIN32_WINNT &lt; 0x0501))<BR>&gt; int WSAAPI getnameinfo(const struct sockaddr*,socklen_t,char*,DWORD,<BR>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char*,DWORD,int);<BR>&gt; #endif<BR>&gt; <BR>&gt; <BR></PRE>
<DIV><FONT face=Arial>Next is a change to fix a warning regarding the 
IN_MULTICAST define:</FONT></DIV><PRE>diff -r -d wpcapsrc_3_2_alpha1/winpcap/wpcap/libpcap/Win32/Include/ip6_misc.h wpcapsrc_3_2_alpha1_mingw/winpcap/wpcap/libpcap/Win32/Include/ip6_misc.h<BR>33a34<BR>&gt; #ifndef __MINGW32__<BR>34a36<BR>&gt; #endif</PRE>
<DIV><FONT face=Arial>The next diff is the same as the previous GNUmakefile diff 
with some syntax changes added:</FONT></DIV><PRE>diff -r -d wpcapsrc_3_2_alpha1/winpcap/wpcap/PRJ/GNUmakefile wpcapsrc_3_2_alpha1_mingw/winpcap/wpcap/PRJ/GNUmakefile<BR>17,18c17,18<BR>&lt; LEX = flex -Ppcap_<BR>&lt; YACC = bison -y -p pcap_<BR>---<BR>&gt; LFLAGS = -Ppcap_<BR>&gt; YFLAGS = -y -p pcap_<BR>30a31<BR>&gt; &nbsp;-DHAVE_REMOTE \<BR>33c34<BR>&lt; LIBS = -L ../../${PACKET_DIR}/DLL/Project -lPacket -lwsock32<BR>---<BR>&gt; LIBS = -L ../../${PACKET_DIR}/DLL/Project -lPacket -lws2_32<BR>55a57,60<BR>&gt; &nbsp;../libpcap/pcap-new.o \<BR>&gt; &nbsp;../libpcap/pcap-remote.o \<BR>&gt; &nbsp;../libpcap/sockutils.o \<BR>&gt; &nbsp;../libpcap/Win32/Src/gai_strerror.o \<BR>59c64<BR>&lt; &nbsp;${CC} ${CFLAGS} ${LDFLAGS} -o wpcap.dll wpcap_no_extensions.def ${OBJS} ${LIBS}<BR>---<BR>&gt; &nbsp;${CC} ${CFLAGS} ${LDFLAGS} -o wpcap.dll wpcap.def ${OBJS} ${LIBS}<BR>65c70<BR>&lt; &nbsp;rm -f ${OBJS} ../libpcap/scanner.c ../libpcap/grammar.c wpcap.a wpcap.dll<BR>---<BR>&gt; &nbsp;${RM} ${OBJS} ../libpcap/scanner.c ../libpcap/grammar.c wpcap.a wpcap.dll<BR>71,72c76,77<BR>&lt; &nbsp;@rm -f ../libpcap/grammar.c ../libpcap/tokdefs.h<BR>&lt; &nbsp;$(YACC) -d $&lt;<BR>---<BR>&gt; &nbsp;@${RM} ../libpcap/grammar.c ../libpcap/tokdefs.h<BR>&gt; &nbsp;${YACC} ${YFLAGS} -d $&lt;<BR>76,77c81,82<BR>&lt; &nbsp;@rm -f $@<BR>&lt; &nbsp;$(LEX) -t $&lt; &gt;$*.c<BR>---<BR>&gt; &nbsp;@${RM} $@<BR>&gt; &nbsp;${LEX} ${LFLAGS} -t $&lt; &gt;$*.c<BR></PRE>
<DIV><FONT face=Arial>These seem to be all the changes necessary to get it 
working on my computer.&nbsp;Some further private changes not included in the 
above&nbsp;involved dealing with mv and cp since I&nbsp;use&nbsp;the XP CLI 
rather than MSYS or cygwin's shell.&nbsp;Additionally, I had to remember 
to&nbsp;set CC, RM, YACC, LEX, and BISON_SIMPLE&nbsp;in my environment 
variables, something that those familiar with makefiles probably already know to 
do. I got flex and bison for Windows from <A 
href="http://www.monmouth.com/~wstreett/lex-yacc/lex-yacc.html">http://www.monmouth.com/~wstreett/lex-yacc/lex-yacc.html</A>. 
I got diff for Windows from <A 
href="http://gnuwin32.sourceforge.net/packages/diffutils.htm">http://gnuwin32.sourceforge.net/packages/diffutils.htm</A>.</FONT></DIV>
<DIV><FONT face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial>CC=gcc</FONT></DIV>
<DIV><FONT face=Arial>RM=del</FONT></DIV>
<DIV><FONT face=Arial>YACC=bison</FONT></DIV>
<DIV><FONT face=Arial>LEX=flex</FONT></DIV>
<DIV><FONT face=Arial>BISON_SIMPLE=J:\lex-yacc\bison.simple</FONT></DIV>
<BLOCKQUOTE dir=ltr 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=gianluca.varenni@cacetech.com 
  href="mailto:gianluca.varenni@cacetech.com">Gianluca Varenni</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=ouroborus@softhome.net 
  href="mailto:ouroborus@softhome.net">ouroborus@softhome.net</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Thursday, January 05, 2006 9:02 
  AM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Winpcap-users] Various 
  fixups</DIV>
  <DIV><FONT face=Arial></FONT><FONT face=Arial></FONT><BR></DIV>
  <DIV><FONT size=2>Hi.</FONT></DIV>
  <DIV><FONT size=2></FONT>&nbsp;</DIV>
  <DIV><FONT size=2>Sorry for the late reply...</FONT></DIV>
  <DIV><FONT size=2></FONT>&nbsp;</DIV>
  <DIV><FONT size=2>Do you have any update to these patches? I can probably find 
  some time in the next week or so to try applying these patches to main source 
  tree, it we can succeed in making it compile under Cygwin/MingW without 
  breaking any license.</FONT></DIV>
  <DIV><FONT size=2></FONT>&nbsp;</DIV>
  <DIV><FONT size=2>Happy new year</FONT></DIV>
  <DIV><FONT size=2>GV</FONT></DIV></BLOCKQUOTE></BODY></HTML>