Index: src/defines.h
===================================================================
RCS file: /cvsroot/squid/squid/src/defines.h,v
retrieving revision 1.14
diff -u -p -r1.14 defines.h
--- src/defines.h	2001/10/09 21:18:00	1.14
+++ src/defines.h	2001/10/21 09:04:35
@@ -296,15 +296,4 @@
 #define O_BINARY 0
 #endif
 
-/* CygWin & Windows NT Port */
-#if defined(_SQUID_MSWIN_) || defined(_SQUID_CYGWIN_)
-#define _WIN_OS_UNKNOWN	0
-#define _WIN_OS_WIN32S	1
-#define _WIN_OS_WIN95	2
-#define _WIN_OS_WIN98	3
-#define _WIN_OS_WINNT	4
-#define _WIN_OS_WIN2K	5
-#define _WIN_OS_WINXP	6
-#endif
-
 #endif /* SQUID_DEFINES_H */
Index: src/dns_internal.c
===================================================================
RCS file: /cvsroot/squid/squid/src/dns_internal.c,v
retrieving revision 1.13
diff -u -p -r1.13 dns_internal.c
--- src/dns_internal.c	2001/10/12 23:35:26	1.13
+++ src/dns_internal.c	2001/10/21 09:04:50
@@ -289,6 +289,7 @@ idnsParseWIN32Registry(void)
 	break;
     case _WIN_OS_WIN95:
     case _WIN_OS_WIN98:
+    case _WIN_OS_WINME:
 	/* get nameservers from the Windows 9X registry */
 	if (RegOpenKey(HKEY_LOCAL_MACHINE,
 		"SYSTEM\\CurrentControlSet\\Services\\VxD\\MSTCP",
Index: src/enums.h
===================================================================
RCS file: /cvsroot/squid/squid/src/enums.h,v
retrieving revision 1.26
diff -u -p -r1.26 enums.h
--- src/enums.h	2001/10/17 12:42:59	1.26
+++ src/enums.h	2001/10/21 09:04:52
@@ -727,4 +727,21 @@ enum {
     VARY_CANCEL
 };
 
+/* CygWin & Windows NT Port */
+#if defined(_SQUID_MSWIN_) || defined(_SQUID_CYGWIN_)
+/*
+ * Supported Windows OS types codes
+ */
+enum {
+    _WIN_OS_UNKNOWN,
+    _WIN_OS_WIN32S,
+    _WIN_OS_WIN95,
+    _WIN_OS_WIN98,
+    _WIN_OS_WINME,
+    _WIN_OS_WINNT,
+    _WIN_OS_WIN2K,
+    _WIN_OS_WINXP
+};
+#endif
+
 #endif /* SQUID_ENUMS_H */
Index: src/win32.c
===================================================================
RCS file: /cvsroot/squid/squid/src/win32.c,v
retrieving revision 1.3
diff -u -p -r1.3 win32.c
--- src/win32.c	2001/08/16 07:39:03	1.3
+++ src/win32.c	2001/10/21 09:04:52
@@ -48,30 +48,37 @@ GetOSVersion()
 	    WIN32_OS_string = xstrdup("Windows NT");
 	    return _WIN_OS_WINNT;
 	}
+	if ((osvi.dwMajorVersion == 5) && (osvi.dwMinorVersion == 0)) {
+	    WIN32_OS_string = xstrdup("Windows 2000");
+	    return _WIN_OS_WIN2K;
+	}
 	if ((osvi.dwMajorVersion == 5) && (osvi.dwMinorVersion == 1)) {
 	    WIN32_OS_string = xstrdup("Windows XP");
 	    return _WIN_OS_WINXP;
 	}
-	WIN32_OS_string = xstrdup("Windows 2000");
-	return _WIN_OS_WIN2K;
 	break;
     case VER_PLATFORM_WIN32_WINDOWS:
-	if ((osvi.dwMajorVersion > 4) ||
-	    ((osvi.dwMajorVersion == 4) && (osvi.dwMinorVersion > 0))) {
+	if ((osvi.dwMajorVersion == 4) && (osvi.dwMinorVersion == 0)) {
+	    WIN32_OS_string = xstrdup("Windows 95");
+	    return _WIN_OS_WIN95;
+	}
+	if ((osvi.dwMajorVersion == 4) && (osvi.dwMinorVersion == 10)) {
 	    WIN32_OS_string = xstrdup("Windows 98");
 	    return _WIN_OS_WIN98;
 	}
-	WIN32_OS_string = xstrdup("Windows 95");
-	return _WIN_OS_WIN95;
+	if ((osvi.dwMajorVersion == 4) && (osvi.dwMinorVersion == 90)) {
+	    WIN32_OS_string = xstrdup("Windows Me");
+	    return _WIN_OS_WINME;
+	}
 	break;
     case VER_PLATFORM_WIN32s:
 	WIN32_OS_string = xstrdup("Windows 3.1 with WIN32S");
 	return _WIN_OS_WIN32S;
 	break;
     default:
-	return _WIN_OS_UNKNOWN;
+	break;
     }
-    WIN32_OS_string = xstrdup("Unknown");
+    WIN32_OS_string = xstrdup("Unknown Windows system");
     return _WIN_OS_UNKNOWN;
 }
 
