X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/1ece9da72e9dd60b598bc8e2958ddc3ef8094d28..d74d141c2daed084c8a62c5dc5b88e801b81ee5a:/settings.c diff --git a/settings.c b/settings.c index b621fbf3..f75bac36 100644 --- a/settings.c +++ b/settings.c @@ -160,6 +160,26 @@ void save_settings(char *section, int do_host, Config * cfg) write_setting_i(sesskey, "BlinkText", cfg->blinktext); write_setting_i(sesskey, "X11Forward", cfg->x11_forward); write_setting_s(sesskey, "X11Display", cfg->x11_display); + write_setting_i(sesskey, "LocalPortAcceptAll", cfg->lport_acceptall); + { + char buf[2 * sizeof(cfg->portfwd)], *p, *q; + p = buf; + q = cfg->portfwd; + while (*q) { + while (*q) { + int c = *q++; + if (c == '=' || c == ',' || c == '\\') + *p++ = '\\'; + if (c == '\t') + c = '='; + *p++ = c; + } + *p++ = ','; + q++; + } + *p = '\0'; + write_setting_s(sesskey, "PortForwardings", buf); + } close_settings_w(sesskey); } @@ -365,6 +385,28 @@ void load_settings(char *section, int do_host, Config * cfg) gpps(sesskey, "X11Display", "localhost:0", cfg->x11_display, sizeof(cfg->x11_display)); + gppi(sesskey, "LocalPortAcceptAll", 0, &cfg->lport_acceptall); + { + char buf[2 * sizeof(cfg->portfwd)], *p, *q; + gpps(sesskey, "PortForwardings", "", buf, sizeof(buf)); + p = buf; + q = cfg->portfwd; + while (*p) { + while (*p && *p != ',') { + int c = *p++; + if (c == '=') + c = '\t'; + if (c == '\\') + c = *p++; + *q++ = c; + } + if (*p == ',') + p++; + *q++ = '\0'; + } + *q = '\0'; + } + close_settings_r(sesskey); }