74 if (uname(&u) != -1) {
85 const char *plat = NULL;
86 memset(&info, 0,
sizeof(info));
87 info.dwOSVersionInfoSize =
sizeof(info);
88 if (! GetVersionEx((LPOSVERSIONINFO)&info)) {
89 strlcpy(
uname_result,
"Bizarre version of Windows where GetVersionEx"
95 if (info.wProductType == VER_NT_SERVER ||
96 info.wProductType == VER_NT_DOMAIN_CONTROLLER) {
103 for (i=0; win_version_table[i].major>0; ++i) {
104 if (win_version_table[i].major == info.dwMajorVersion &&
105 win_version_table[i].minor == info.dwMinorVersion) {
107 plat = win_version_table[i].server_version;
111 plat = win_version_table[i].client_version;
119 if (info.dwMajorVersion > win_version_table[0].major ||
120 (info.dwMajorVersion == win_version_table[0].major &&
121 info.dwMinorVersion > win_version_table[0].minor))
123 "Very recent version of Windows [major=%d,minor=%d]",
124 (
int)info.dwMajorVersion,(
int)info.dwMinorVersion);
127 "Unrecognized version of Windows [major=%d,minor=%d]",
128 (
int)info.dwMajorVersion,(
int)info.dwMinorVersion);
138 if (info.dwMajorVersion > 6 ||
139 (info.dwMajorVersion == 6 && info.dwMinorVersion >= 2)) {
146 if (!is_server && !is_client) {