X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/8def70c3ec6f81f95673c0de67a75b5a6b2e9e1c..1605c493c65a1879408acad03a1d5991ada08dc2:/settings.c diff --git a/settings.c b/settings.c index 26926769..52538f62 100644 --- a/settings.c +++ b/settings.c @@ -75,6 +75,25 @@ Backend *backend_from_proto(int proto) return NULL; } +int get_remote_username(Config *cfg, char *user, size_t len) +{ + if (*cfg->username) { + strncpy(user, cfg->username, len); + user[len-1] = '\0'; + } else { + if (cfg->username_from_env) { + /* Use local username. */ + char *luser = get_username(); + strncpy(user, luser, len); + user[len-1] = '\0'; + sfree(luser); + } else { + *user = '\0'; + } + } + return (*user != '\0'); +} + static void gpps(void *handle, const char *name, const char *def, char *val, int len) { @@ -316,6 +335,7 @@ void save_open_settings(void *sesskey, Config *cfg) write_setting_s(sesskey, "ProxyTelnetCommand", cfg->proxy_telnet_command); wmap(sesskey, "Environment", cfg->environmt, lenof(cfg->environmt)); write_setting_s(sesskey, "UserName", cfg->username); + write_setting_i(sesskey, "UserNameFromEnvironment", cfg->username_from_env); write_setting_s(sesskey, "LocalUserName", cfg->localusername); write_setting_i(sesskey, "NoPTY", cfg->nopty); write_setting_i(sesskey, "Compression", cfg->compression); @@ -584,7 +604,8 @@ void load_open_settings(void *sesskey, Config *cfg) gpps(sesskey, "ProxyTelnetCommand", "connect %host %port\\n", cfg->proxy_telnet_command, sizeof(cfg->proxy_telnet_command)); gppmap(sesskey, "Environment", "", cfg->environmt, lenof(cfg->environmt)); - gpps(sesskey, "UserName", get_username(), cfg->username, sizeof(cfg->username)); + gpps(sesskey, "UserName", "", cfg->username, sizeof(cfg->username)); + gppi(sesskey, "UserNameFromEnvironment", 0, &cfg->username_from_env); gpps(sesskey, "LocalUserName", "", cfg->localusername, sizeof(cfg->localusername)); gppi(sesskey, "NoPTY", 0, &cfg->nopty); @@ -674,13 +695,21 @@ void load_open_settings(void *sesskey, Config *cfg) gppfile(sesskey, "BellWaveFile", &cfg->bell_wavefile); gppi(sesskey, "BellOverload", 1, &cfg->bellovl); gppi(sesskey, "BellOverloadN", 5, &cfg->bellovl_n); - gppi(sesskey, "BellOverloadT", 2*TICKSPERSEC, &i); + gppi(sesskey, "BellOverloadT", 2*TICKSPERSEC +#ifdef PUTTY_UNIX_H + *1000 +#endif + , &i); cfg->bellovl_t = i #ifdef PUTTY_UNIX_H / 1000 #endif ; - gppi(sesskey, "BellOverloadS", 5*TICKSPERSEC, &i); + gppi(sesskey, "BellOverloadS", 5*TICKSPERSEC +#ifdef PUTTY_UNIX_H + *1000 +#endif + , &i); cfg->bellovl_s = i #ifdef PUTTY_UNIX_H / 1000