GNet README for Windows
-----------------------

This document contains:
 - General Windows Specific Information
 - Compiling GNet on Windows

General Windows Specific Information
----------------------------------

GNet 2.0 on Windows requires at least glib-2.2.3. 
See: http://www.gimp.org/~tml/gimp/win32/downloads.html

For IPv6 support you need at least Windows XP SP1 or Windows 2003 
(and both with the IPv6 stacks installed). GNet will automatically 
detect at runtime, not compile time, if IPv6 is supported and set the 
"IPv6 policy". Note that if IPv6 is installed, GNet will default to 
use IPv6. Since Windows is a “dual stack” operating system this may 
lead to your IPv4 only application to fail if the IPv6 stack is 
installed since the bind() default is IPv6. You should explicitly 
set the GNet "IPv6 policy” with 
gnet_ipv6_set_policy(GIPV6_POLICY_IPV4_ONLY); after gnet_init(); 
if your application is IPv4 only.

I used Windows 2000 SP4 and Windows XP SP1 to test GNet 2.0.
I used Windows 98 and Windows NT 4 SP6a to test prior versions 
of GNet however these versions of Windows have reached “end-of-life” 
according to Microsoft. Theoretically all that is required is 
Windows 95 (with the Winsock2 patch) or better, or Windows NT 
(with Service Pack 4) or better.

On Windows if you do not have IPv6 installed then 
gnet_inetaddr_list_interfaces() will return up to 10 interfaces.

Reminder that on windows, text files have extra "\r" in them where as
on UNIX they do not. This will throw off SHA & MD5 if you do not filter
the extra characters out before calling those functions.

Compiling GNet on Windows
-------------------------

Microsoft Visual C++ .NET 2002, 2003 and Mingw/GCC should compile 
GNet 2.0 without any issues. The few warnings that appear can be 
ignored. Microsoft Visual C++ 6.0 users will have to upgrade to 
the latest Platform SDK. (Note that GNet is written in C, not C++.)

A mingw/gcc makefile is provided. Microsoft Visual C++ users 
should look at and base their projects off this gcc makefile. A 
.dsp file may be in this distribution but it is likely out of date.
 
You should compile GNet 2.0 on Windows with the -mno-cygwin, 
-mms-bitfields and -DGNET_EXPERIMENTAL=1 options for gcc and 
define GNET_EXPERIMENTAL when compiling with Microsoft Visual C++. 
Note that the “Experimental” code such as the Conn API has now 
stabilized on Windows.

Also note that -mno-cygwin means do not link to the cygwin 
dll, link to MSVCRT when using cygwin tools. Linking to cygwin 
is not supported.