diff options
| author | Emīls <emils@mullvad.net> | 2021-02-04 22:07:52 +0000 |
|---|---|---|
| committer | Emīls <emils@mullvad.net> | 2021-02-04 22:07:52 +0000 |
| commit | f932f56dcf1b5023b5db1ec6a3cdd6812dcc797a (patch) | |
| tree | 777b015e14582bfb5670a04118a301781fe95aed | |
| parent | 00452fb6eadabc3b4ccb483718d18c87092ff543 (diff) | |
| parent | fbbd541ac374fd6f9f9b1356c35e74de3a3b44be (diff) | |
| download | mullvadvpn-f932f56dcf1b5023b5db1ec6a3cdd6812dcc797a.tar.xz mullvadvpn-f932f56dcf1b5023b5db1ec6a3cdd6812dcc797a.zip | |
Merge branch 'win-add-minor-versino-to-version-check'
| -rw-r--r-- | talpid-platform-metadata/src/windows.rs | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/talpid-platform-metadata/src/windows.rs b/talpid-platform-metadata/src/windows.rs index 0222f63221..016d71ed4c 100644 --- a/talpid-platform-metadata/src/windows.rs +++ b/talpid-platform-metadata/src/windows.rs @@ -11,22 +11,21 @@ use winapi::um::{ }; pub fn version() -> String { - let (major, minor, build) = WindowsVersion::new() + let (major, build) = WindowsVersion::new() .map(|version_info| { ( - version_info.major_version().to_string(), - version_info.minor_version().to_string(), + version_info.windows_version_string(), version_info.build_number().to_string(), ) }) - .unwrap_or_else(|_| ("N/A".to_string(), "N/A".to_string(), "N/A".to_string())); + .unwrap_or_else(|_| ("N/A".to_string(), "N/A".to_string())); - format!("Windows {}.{} Build {}", major, minor, build) + format!("Windows {} Build {}", major, build) } pub fn short_version() -> String { let version_string = WindowsVersion::new() - .map(|version| version.major_version().to_string()) + .map(|version| version.windows_version_string()) .unwrap_or("N/A".into()); format!("Windows {}", version_string) } @@ -75,6 +74,18 @@ impl WindowsVersion { } } + pub fn windows_version_string(&self) -> String { + // Check https://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions#Personal_computer_versions 'Release version' column + // for the correct NT versions for specific windows releases. + match (self.major_version(), self.minor_version()) { + (6, 1) => "7".into(), + (6, 2) => "8".into(), + (6, 3) => "8.1".into(), + (10, 0) => "10".into(), + (major, minor) => format!("{}.{}", major, minor), + } + } + pub fn major_version(&self) -> u32 { self.inner.dwMajorVersion } |
