r12546@catbus: nickm | 2007-04-29 21:27:43 -0400

Correctly report win98se and win95osr2 versions.


svn:r10047
This commit is contained in:
Nick Mathewson 2007-04-30 01:27:47 +00:00
parent e0b0c2a4d2
commit 105d782109
2 changed files with 15 additions and 1 deletions

View File

@ -61,6 +61,7 @@ Changes in version 0.2.0.1-alpha - 2007-??-??
proposal 104.] proposal 104.]
o Minor features (other): o Minor features (other):
- Correctly report Windows 95 OSR2 and Windows 98 SE.
- More unit tests. - More unit tests.
o Removed features: o Removed features:

View File

@ -922,6 +922,7 @@ get_uname(void)
int i; int i;
unsigned int leftover_mask; unsigned int leftover_mask;
const char *plat = NULL; const char *plat = NULL;
const char *extra = NULL;
static struct { static struct {
unsigned major; unsigned minor; const char *version; unsigned major; unsigned minor; const char *version;
} win_version_table[] = { } win_version_table[] = {
@ -968,6 +969,10 @@ get_uname(void)
plat = "Windows NT 4.0"; plat = "Windows NT 4.0";
else else
plat = "Windows 95"; plat = "Windows 95";
if (info.szCSDVersion[1] == 'B')
extra = "OSR2 (B)";
else if (info.szCSDVersion[1] == 'C')
extra = "OSR2 (C)";
} else { } else {
for (i=0; win_version_table[i].major>0; ++i) { for (i=0; win_version_table[i].major>0; ++i) {
if (win_version_table[i].major == info.dwMajorVersion && if (win_version_table[i].major == info.dwMajorVersion &&
@ -977,9 +982,17 @@ get_uname(void)
} }
} }
} }
if (plat && !strcmp(plat, "Windows 98")) {
if (info.szCSDVersion[1] == 'A')
extra = "SE (A)";
else if (info.szCSDVersion[1] == 'B')
extra = "SE (B)";
}
if (plat) { if (plat) {
if (!extra)
extra = info.szCSDVersion;
tor_snprintf(uname_result, sizeof(uname_result), "%s %s", tor_snprintf(uname_result, sizeof(uname_result), "%s %s",
plat, info.szCSDVersion); plat, extra);
} else { } else {
if (info.dwMajorVersion > 6 || if (info.dwMajorVersion > 6 ||
(info.dwMajorVersion==6 && info.dwMinorVersion>0)) (info.dwMajorVersion==6 && info.dwMinorVersion>0))