Use native Windows credential cache default
ci / test (push) Canceled after 0s
ci / fuzz-smoke (push) Canceled after 0s
ci / macos-client (macos-aarch64, macos-14) (push) Canceled after 0s
ci / macos-client (macos-x86_64, macos-13) (push) Canceled after 0s
ci / windows-client (push) Canceled after 0s
ci / package-release (linux-x86_64, ubuntu-latest, , , ) (push) Canceled after 0s
ci / package-release (macos-aarch64, macos-14, , , ) (push) Canceled after 0s
ci / package-release (macos-x86_64, macos-13, , , ) (push) Canceled after 0s
ci / package-release (windows-aarch64, windows-latest, aarch64, windows, aarch64-pc-windows-msvc) (push) Canceled after 0s
ci / package-release (windows-x86_64, windows-latest, , , ) (push) Canceled after 0s
ci / remote-bench (push) Canceled after 0s
ci / publish-gitea-release (push) Canceled after 0s

This commit is contained in:
DuProcess
2026-07-16 23:04:19 -04:00
parent d08cb709ab
commit 218fe414be
+33 -2
View File
@@ -208,7 +208,7 @@ impl Default for ClientConfig {
predict: true, predict: true,
predict_mode: default_predict_mode(), predict_mode: default_predict_mode(),
cache_attach_tickets: true, cache_attach_tickets: true,
credential_cache: "~/.local/share/dosh/credentials".to_string(), credential_cache: default_credential_cache(),
auth_preference: default_auth_preference(), auth_preference: default_auth_preference(),
trust_on_first_use: false, trust_on_first_use: false,
native_auth_timeout_ms: default_native_auth_timeout_ms(), native_auth_timeout_ms: default_native_auth_timeout_ms(),
@@ -264,6 +264,20 @@ fn default_auth_preference() -> String {
"native,ssh".to_string() "native,ssh".to_string()
} }
fn default_credential_cache() -> String {
#[cfg(windows)]
{
if let Some(local_app_data) = std::env::var_os("LOCALAPPDATA") {
return PathBuf::from(local_app_data)
.join("dosh")
.join("credentials")
.to_string_lossy()
.into_owned();
}
}
"~/.local/share/dosh/credentials".to_string()
}
fn default_native_auth_timeout_ms() -> u64 { fn default_native_auth_timeout_ms() -> u64 {
700 700
} }
@@ -343,7 +357,7 @@ pub fn expand_tilde(path: &str) -> PathBuf {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::{ClientConfig, ServerConfig, expand_tilde}; use super::{ClientConfig, ServerConfig, default_credential_cache, expand_tilde};
use std::path::PathBuf; use std::path::PathBuf;
#[test] #[test]
@@ -359,6 +373,7 @@ dosh_port = 50000
assert!(config.predict); assert!(config.predict);
assert_eq!(config.predict_mode, "experimental"); assert_eq!(config.predict_mode, "experimental");
assert_eq!(config.auth_preference, "native,ssh"); assert_eq!(config.auth_preference, "native,ssh");
assert_eq!(config.credential_cache, default_credential_cache());
assert_eq!(config.native_auth_timeout_ms, 700); assert_eq!(config.native_auth_timeout_ms, 700);
assert_eq!(config.known_hosts, "~/.config/dosh/known_hosts"); assert_eq!(config.known_hosts, "~/.config/dosh/known_hosts");
assert_eq!(config.identity_files, vec!["~/.ssh/id_ed25519"]); assert_eq!(config.identity_files, vec!["~/.ssh/id_ed25519"]);
@@ -383,6 +398,22 @@ dosh_port = 50000
); );
} }
#[test]
fn default_credential_cache_matches_platform() {
let cache = default_credential_cache();
#[cfg(windows)]
if let Some(local_app_data) = std::env::var_os("LOCALAPPDATA") {
assert_eq!(
PathBuf::from(cache),
PathBuf::from(local_app_data)
.join("dosh")
.join("credentials")
);
return;
}
assert_eq!(cache, "~/.local/share/dosh/credentials");
}
#[test] #[test]
fn old_server_configs_fill_new_fields_from_defaults() { fn old_server_configs_fill_new_fields_from_defaults() {
let raw = r#" let raw = r#"