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.]
o Minor features (other):
- Correctly report Windows 95 OSR2 and Windows 98 SE.
- More unit tests.
o Removed features:

View File

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