mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-02-09 16:36:34 +00:00
Since we're now able to cope with Default Settings describing a
launchable session without getting confused by it, we can relax the restriction on storing a host name in DS, which has attracted a steady stream of complaints over the past six or seven years. [originally from svn r7266]
This commit is contained in:
parent
5d76e00dac
commit
856ed4ae73
4
config.c
4
config.c
@ -392,7 +392,7 @@ static int load_selected_session(struct sessionsaver_data *ssd,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
isdef = !strcmp(ssd->sesslist.sessions[i], "Default Settings");
|
isdef = !strcmp(ssd->sesslist.sessions[i], "Default Settings");
|
||||||
load_settings(ssd->sesslist.sessions[i], !isdef, cfg);
|
load_settings(ssd->sesslist.sessions[i], cfg);
|
||||||
if (!isdef) {
|
if (!isdef) {
|
||||||
strncpy(savedsession, ssd->sesslist.sessions[i],
|
strncpy(savedsession, ssd->sesslist.sessions[i],
|
||||||
SAVEDSESSION_LEN);
|
SAVEDSESSION_LEN);
|
||||||
@ -501,7 +501,7 @@ static void sessionsaver_handler(union control *ctrl, void *dlg,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
char *errmsg = save_settings(savedsession, !isdef, cfg);
|
char *errmsg = save_settings(savedsession, cfg);
|
||||||
if (errmsg) {
|
if (errmsg) {
|
||||||
dlg_error_msg(dlg, errmsg);
|
dlg_error_msg(dlg, errmsg);
|
||||||
sfree(errmsg);
|
sfree(errmsg);
|
||||||
|
@ -237,7 +237,7 @@ static OSErr mac_opensessionfrom(FSSpec *fss)
|
|||||||
err = -9999;
|
err = -9999;
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
load_open_settings(sesshandle, TRUE, &s->cfg);
|
load_open_settings(sesshandle, &s->cfg);
|
||||||
close_settings_r(sesshandle);
|
close_settings_r(sesshandle);
|
||||||
|
|
||||||
mac_startsession(s);
|
mac_startsession(s);
|
||||||
@ -321,7 +321,7 @@ void mac_savesession(void)
|
|||||||
assert(s->hasfile);
|
assert(s->hasfile);
|
||||||
sesshandle = open_settings_w_fsp(&s->savefile);
|
sesshandle = open_settings_w_fsp(&s->savefile);
|
||||||
if (sesshandle == NULL) return; /* XXX report error */
|
if (sesshandle == NULL) return; /* XXX report error */
|
||||||
save_open_settings(sesshandle, TRUE, &s->cfg);
|
save_open_settings(sesshandle, &s->cfg);
|
||||||
close_settings_w(sesshandle);
|
close_settings_w(sesshandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -342,7 +342,7 @@ void mac_savesessionas(void)
|
|||||||
}
|
}
|
||||||
sesshandle = open_settings_w_fsp(&sfr.sfFile);
|
sesshandle = open_settings_w_fsp(&sfr.sfFile);
|
||||||
if (sesshandle == NULL) return; /* XXX report error */
|
if (sesshandle == NULL) return; /* XXX report error */
|
||||||
save_open_settings(sesshandle, TRUE, &s->cfg);
|
save_open_settings(sesshandle, &s->cfg);
|
||||||
close_settings_w(sesshandle);
|
close_settings_w(sesshandle);
|
||||||
s->hasfile = TRUE;
|
s->hasfile = TRUE;
|
||||||
s->savefile = sfr.sfFile;
|
s->savefile = sfr.sfFile;
|
||||||
|
8
putty.h
8
putty.h
@ -777,10 +777,10 @@ void random_destroy_seed(void);
|
|||||||
/*
|
/*
|
||||||
* Exports from settings.c.
|
* Exports from settings.c.
|
||||||
*/
|
*/
|
||||||
char *save_settings(char *section, int do_host, Config * cfg);
|
char *save_settings(char *section, Config * cfg);
|
||||||
void save_open_settings(void *sesskey, int do_host, Config *cfg);
|
void save_open_settings(void *sesskey, Config *cfg);
|
||||||
void load_settings(char *section, int do_host, Config * cfg);
|
void load_settings(char *section, Config * cfg);
|
||||||
void load_open_settings(void *sesskey, int do_host, Config *cfg);
|
void load_open_settings(void *sesskey, Config *cfg);
|
||||||
void get_sesslist(struct sesslist *, int allocate);
|
void get_sesslist(struct sesslist *, int allocate);
|
||||||
void do_defaults(char *, Config *);
|
void do_defaults(char *, Config *);
|
||||||
void registry_cleanup(void);
|
void registry_cleanup(void);
|
||||||
|
20
settings.c
20
settings.c
@ -231,7 +231,7 @@ static void wprefs(void *sesskey, char *name,
|
|||||||
write_setting_s(sesskey, name, buf);
|
write_setting_s(sesskey, name, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *save_settings(char *section, int do_host, Config * cfg)
|
char *save_settings(char *section, Config * cfg)
|
||||||
{
|
{
|
||||||
void *sesskey;
|
void *sesskey;
|
||||||
char *errmsg;
|
char *errmsg;
|
||||||
@ -239,20 +239,18 @@ char *save_settings(char *section, int do_host, Config * cfg)
|
|||||||
sesskey = open_settings_w(section, &errmsg);
|
sesskey = open_settings_w(section, &errmsg);
|
||||||
if (!sesskey)
|
if (!sesskey)
|
||||||
return errmsg;
|
return errmsg;
|
||||||
save_open_settings(sesskey, do_host, cfg);
|
save_open_settings(sesskey, cfg);
|
||||||
close_settings_w(sesskey);
|
close_settings_w(sesskey);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void save_open_settings(void *sesskey, int do_host, Config *cfg)
|
void save_open_settings(void *sesskey, Config *cfg)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
write_setting_i(sesskey, "Present", 1);
|
write_setting_i(sesskey, "Present", 1);
|
||||||
if (do_host) {
|
|
||||||
write_setting_s(sesskey, "HostName", cfg->host);
|
write_setting_s(sesskey, "HostName", cfg->host);
|
||||||
}
|
|
||||||
write_setting_filename(sesskey, "LogFileName", cfg->logfilename);
|
write_setting_filename(sesskey, "LogFileName", cfg->logfilename);
|
||||||
write_setting_i(sesskey, "LogType", cfg->logtype);
|
write_setting_i(sesskey, "LogType", cfg->logtype);
|
||||||
write_setting_i(sesskey, "LogFileClash", cfg->logxfovr);
|
write_setting_i(sesskey, "LogFileClash", cfg->logxfovr);
|
||||||
@ -447,16 +445,16 @@ void save_open_settings(void *sesskey, int do_host, Config *cfg)
|
|||||||
write_setting_i(sesskey, "SerialFlowControl", cfg->serflow);
|
write_setting_i(sesskey, "SerialFlowControl", cfg->serflow);
|
||||||
}
|
}
|
||||||
|
|
||||||
void load_settings(char *section, int do_host, Config * cfg)
|
void load_settings(char *section, Config * cfg)
|
||||||
{
|
{
|
||||||
void *sesskey;
|
void *sesskey;
|
||||||
|
|
||||||
sesskey = open_settings_r(section);
|
sesskey = open_settings_r(section);
|
||||||
load_open_settings(sesskey, do_host, cfg);
|
load_open_settings(sesskey, cfg);
|
||||||
close_settings_r(sesskey);
|
close_settings_r(sesskey);
|
||||||
}
|
}
|
||||||
|
|
||||||
void load_open_settings(void *sesskey, int do_host, Config *cfg)
|
void load_open_settings(void *sesskey, Config *cfg)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
char prot[10];
|
char prot[10];
|
||||||
@ -466,11 +464,7 @@ void load_open_settings(void *sesskey, int do_host, Config *cfg)
|
|||||||
cfg->remote_cmd_ptr2 = NULL;
|
cfg->remote_cmd_ptr2 = NULL;
|
||||||
cfg->ssh_nc_host[0] = '\0';
|
cfg->ssh_nc_host[0] = '\0';
|
||||||
|
|
||||||
if (do_host) {
|
|
||||||
gpps(sesskey, "HostName", "", cfg->host, sizeof(cfg->host));
|
gpps(sesskey, "HostName", "", cfg->host, sizeof(cfg->host));
|
||||||
} else {
|
|
||||||
cfg->host[0] = '\0'; /* blank hostname */
|
|
||||||
}
|
|
||||||
gppfile(sesskey, "LogFileName", &cfg->logfilename);
|
gppfile(sesskey, "LogFileName", &cfg->logfilename);
|
||||||
gppi(sesskey, "LogType", 0, &cfg->logtype);
|
gppi(sesskey, "LogType", 0, &cfg->logtype);
|
||||||
gppi(sesskey, "LogFileClash", LGXF_ASK, &cfg->logxfovr);
|
gppi(sesskey, "LogFileClash", LGXF_ASK, &cfg->logxfovr);
|
||||||
@ -785,7 +779,7 @@ void load_open_settings(void *sesskey, int do_host, Config *cfg)
|
|||||||
|
|
||||||
void do_defaults(char *session, Config * cfg)
|
void do_defaults(char *session, Config * cfg)
|
||||||
{
|
{
|
||||||
load_settings(session, (session != NULL && *session), cfg);
|
load_settings(session, cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sessioncmp(const void *av, const void *bv)
|
static int sessioncmp(const void *av, const void *bv)
|
||||||
|
Loading…
Reference in New Issue
Block a user