Skip to content

Commit

Permalink
rs: fix error logs and compilation warning on non-windows (#390)
Browse files Browse the repository at this point in the history
Fixes #388
  • Loading branch information
connor4312 authored Jan 29, 2024
1 parent f8d0f63 commit d033e5d
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 20 deletions.
28 changes: 11 additions & 17 deletions rs/src/management/http_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -569,32 +569,26 @@ fn create_full_user_agent(user_agent: &str) -> String {
let pkg_version = PKG_VERSION.unwrap_or("unknown");
let os = os_info::get();
let os_info = format!("{}: {} {}", "OS", os.os_type(), os.version());
let mut windows_partner_id: Option<String> = None;

let mut full_user_agent = format!(
"{}{}{} ({}",
user_agent, " Dev-Tunnels-Service-Rust-SDK/", pkg_version, os_info
);

#[cfg(windows)]
{
use winreg::enums::*;
use winreg::RegKey;
let hklm = RegKey::predef(HKEY_LOCAL_MACHINE);
let key = hklm.open_subkey("SOFTWARE\\Microsoft\\Windows365");
windows_partner_id = key.and_then(|k| k.get_value("PartnerId")).ok();
if let Ok(id) = key.and_then(|k| k.get_value::<String, _>("PartnerId")) {
full_user_agent.push_str(" Windows-Partner-Id: ");
full_user_agent.push_str(&id);
}
}

let mut full_user_agent = format!(
"{}{}{} ({})",
user_agent, " Dev-Tunnels-Service-Rust-SDK/", pkg_version, os_info
);
full_user_agent.push(')');

if let Some(id) = &windows_partner_id {
let windows_partner_id_str = format!("Windows-Partner-Id: {}", id);
full_user_agent = format!(
"{}{}{} ({}; {})",
user_agent,
" Dev-Tunnels-Service-Rust-SDK/",
pkg_version,
os_info,
windows_partner_id_str
);
}
full_user_agent
}

Expand Down
11 changes: 8 additions & 3 deletions rs/src/management/policy_provider.rs
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
use std::io;

pub const REGISTRY_KEY_PATH: &str = r"Software\Policies\Microsoft\Tunnels";

#[cfg(target_os = "windows")]
pub fn get_policy_header_value() -> io::Result<Option<String>> {
use urlencoding::encode;
use winreg::enums::*;
use winreg::RegKey;

pub const REGISTRY_KEY_PATH: &str = r"Software\Policies\Microsoft\Tunnels";

let hklm = RegKey::predef(HKEY_LOCAL_MACHINE);
let sub_key = hklm.open_subkey(REGISTRY_KEY_PATH)?;
let sub_key = match hklm.open_subkey(REGISTRY_KEY_PATH) {
Ok(sub_key) => sub_key,
Err(e) if e.kind() == io::ErrorKind::NotFound => return Ok(None),
Err(e) => return Err(e),
};

let mut header_values = vec![];

for (name, value) in sub_key.enum_values().filter_map(Result::ok) {
Expand Down

0 comments on commit d033e5d

Please sign in to comment.