- write_setting_s(sesskey, "UserName", cfg->username);
- write_setting_s(sesskey, "LocalUserName", cfg->localusername);
- write_setting_i(sesskey, "NoPTY", cfg->nopty);
- write_setting_i(sesskey, "Compression", cfg->compression);
- write_setting_i(sesskey, "AgentFwd", cfg->agentfwd);
- write_setting_i(sesskey, "ChangeUsername", cfg->change_username);
- wprefs(sesskey, "Cipher", ciphernames, CIPHER_MAX,
- cfg->ssh_cipherlist);
- write_setting_i(sesskey, "AuthTIS", cfg->try_tis_auth);
- write_setting_i(sesskey, "AuthKI", cfg->try_ki_auth);
- write_setting_i(sesskey, "SshProt", cfg->sshprot);
- write_setting_i(sesskey, "BuggyMAC", cfg->buggymac);
- write_setting_i(sesskey, "SSH2DES", cfg->ssh2_des_cbc);
- write_setting_s(sesskey, "PublicKeyFile", cfg->keyfile);
- write_setting_s(sesskey, "RemoteCommand", cfg->remote_cmd);
- write_setting_i(sesskey, "RFCEnviron", cfg->rfc_environ);
- write_setting_i(sesskey, "PassiveTelnet", cfg->passive_telnet);
- write_setting_i(sesskey, "BackspaceIsDelete", cfg->bksp_is_delete);
- write_setting_i(sesskey, "RXVTHomeEnd", cfg->rxvt_homeend);
- write_setting_i(sesskey, "LinuxFunctionKeys", cfg->funky_type);
- write_setting_i(sesskey, "NoApplicationKeys", cfg->no_applic_k);
- write_setting_i(sesskey, "NoApplicationCursors", cfg->no_applic_c);
- write_setting_i(sesskey, "NoRemoteResize", cfg->no_remote_resize);
- write_setting_i(sesskey, "NoAltScreen", cfg->no_alt_screen);
- write_setting_i(sesskey, "NoRemoteWinTitle", cfg->no_remote_wintitle);
- write_setting_i(sesskey, "NoDBackspace", cfg->no_dbackspace);
- write_setting_i(sesskey, "NoRemoteCharset", cfg->no_remote_charset);
- write_setting_i(sesskey, "ApplicationCursorKeys", cfg->app_cursor);
- write_setting_i(sesskey, "ApplicationKeypad", cfg->app_keypad);
- write_setting_i(sesskey, "NetHackKeypad", cfg->nethack_keypad);
- write_setting_i(sesskey, "AltF4", cfg->alt_f4);
- write_setting_i(sesskey, "AltSpace", cfg->alt_space);
- write_setting_i(sesskey, "AltOnly", cfg->alt_only);
- write_setting_i(sesskey, "ComposeKey", cfg->compose_key);
- write_setting_i(sesskey, "CtrlAltKeys", cfg->ctrlaltkeys);
- write_setting_i(sesskey, "TelnetKey", cfg->telnet_keyboard);
- write_setting_i(sesskey, "TelnetRet", cfg->telnet_newline);
- write_setting_i(sesskey, "LocalEcho", cfg->localecho);
- write_setting_i(sesskey, "LocalEdit", cfg->localedit);
- write_setting_s(sesskey, "Answerback", cfg->answerback);
- write_setting_i(sesskey, "AlwaysOnTop", cfg->alwaysontop);
- write_setting_i(sesskey, "FullScreenOnAltEnter", cfg->fullscreenonaltenter);
- write_setting_i(sesskey, "HideMousePtr", cfg->hide_mouseptr);
- write_setting_i(sesskey, "SunkenEdge", cfg->sunken_edge);
- write_setting_i(sesskey, "WindowBorder", cfg->window_border);
- write_setting_i(sesskey, "CurType", cfg->cursor_type);
- write_setting_i(sesskey, "BlinkCur", cfg->blink_cur);
- write_setting_i(sesskey, "Beep", cfg->beep);
- write_setting_i(sesskey, "BeepInd", cfg->beep_ind);
- write_setting_s(sesskey, "BellWaveFile", cfg->bell_wavefile);
- write_setting_i(sesskey, "BellOverload", cfg->bellovl);
- write_setting_i(sesskey, "BellOverloadN", cfg->bellovl_n);
- write_setting_i(sesskey, "BellOverloadT", cfg->bellovl_t);
- write_setting_i(sesskey, "BellOverloadS", cfg->bellovl_s);
- write_setting_i(sesskey, "ScrollbackLines", cfg->savelines);
- write_setting_i(sesskey, "DECOriginMode", cfg->dec_om);
- write_setting_i(sesskey, "AutoWrapMode", cfg->wrap_mode);
- write_setting_i(sesskey, "LFImpliesCR", cfg->lfhascr);
- write_setting_i(sesskey, "WinNameAlways", cfg->win_name_always);
- write_setting_s(sesskey, "WinTitle", cfg->wintitle);
- write_setting_i(sesskey, "TermWidth", cfg->width);
- write_setting_i(sesskey, "TermHeight", cfg->height);
- write_setting_s(sesskey, "Font", cfg->font);
- write_setting_i(sesskey, "FontIsBold", cfg->fontisbold);
- write_setting_i(sesskey, "FontCharSet", cfg->fontcharset);
- write_setting_i(sesskey, "FontHeight", cfg->fontheight);
- write_setting_i(sesskey, "FontVTMode", cfg->vtmode);
- write_setting_i(sesskey, "TryPalette", cfg->try_palette);
- write_setting_i(sesskey, "BoldAsColour", cfg->bold_colour);
+ write_setting_s(sesskey, "Protocol", p);
+ write_setting_i(sesskey, "PortNumber", conf_get_int(conf, CONF_port));
+ /* The CloseOnExit numbers are arranged in a different order from
+ * the standard FORCE_ON / FORCE_OFF / AUTO. */
+ write_setting_i(sesskey, "CloseOnExit", (conf_get_int(conf, CONF_close_on_exit)+2)%3);
+ write_setting_i(sesskey, "WarnOnClose", !!conf_get_int(conf, CONF_warn_on_close));
+ write_setting_i(sesskey, "PingInterval", conf_get_int(conf, CONF_ping_interval) / 60); /* minutes */
+ write_setting_i(sesskey, "PingIntervalSecs", conf_get_int(conf, CONF_ping_interval) % 60); /* seconds */
+ write_setting_i(sesskey, "TCPNoDelay", conf_get_int(conf, CONF_tcp_nodelay));
+ write_setting_i(sesskey, "TCPKeepalives", conf_get_int(conf, CONF_tcp_keepalives));
+ write_setting_s(sesskey, "TerminalType", conf_get_str(conf, CONF_termtype));
+ write_setting_s(sesskey, "TerminalSpeed", conf_get_str(conf, CONF_termspeed));
+ wmap(sesskey, "TerminalModes", conf, CONF_ttymodes);
+
+ /* Address family selection */
+ write_setting_i(sesskey, "AddressFamily", conf_get_int(conf, CONF_addressfamily));
+
+ /* proxy settings */
+ write_setting_s(sesskey, "ProxyExcludeList", conf_get_str(conf, CONF_proxy_exclude_list));
+ write_setting_i(sesskey, "ProxyDNS", (conf_get_int(conf, CONF_proxy_dns)+2)%3);
+ write_setting_i(sesskey, "ProxyLocalhost", conf_get_int(conf, CONF_even_proxy_localhost));
+ write_setting_i(sesskey, "ProxyMethod", conf_get_int(conf, CONF_proxy_type));
+ write_setting_s(sesskey, "ProxyHost", conf_get_str(conf, CONF_proxy_host));
+ write_setting_i(sesskey, "ProxyPort", conf_get_int(conf, CONF_proxy_port));
+ write_setting_s(sesskey, "ProxyUsername", conf_get_str(conf, CONF_proxy_username));
+ write_setting_s(sesskey, "ProxyPassword", conf_get_str(conf, CONF_proxy_password));
+ write_setting_s(sesskey, "ProxyTelnetCommand", conf_get_str(conf, CONF_proxy_telnet_command));
+ wmap(sesskey, "Environment", conf, CONF_environmt);
+ write_setting_s(sesskey, "UserName", conf_get_str(conf, CONF_username));
+ write_setting_i(sesskey, "UserNameFromEnvironment", conf_get_int(conf, CONF_username_from_env));
+ write_setting_s(sesskey, "LocalUserName", conf_get_str(conf, CONF_localusername));
+ write_setting_i(sesskey, "NoPTY", conf_get_int(conf, CONF_nopty));
+ write_setting_i(sesskey, "Compression", conf_get_int(conf, CONF_compression));
+ write_setting_i(sesskey, "TryAgent", conf_get_int(conf, CONF_tryagent));
+ write_setting_i(sesskey, "AgentFwd", conf_get_int(conf, CONF_agentfwd));
+ write_setting_i(sesskey, "GssapiFwd", conf_get_int(conf, CONF_gssapifwd));
+ write_setting_i(sesskey, "ChangeUsername", conf_get_int(conf, CONF_change_username));
+ wprefs(sesskey, "Cipher", ciphernames, CIPHER_MAX, conf, CONF_ssh_cipherlist);
+ wprefs(sesskey, "KEX", kexnames, KEX_MAX, conf, CONF_ssh_kexlist);
+ write_setting_i(sesskey, "RekeyTime", conf_get_int(conf, CONF_ssh_rekey_time));
+ write_setting_s(sesskey, "RekeyBytes", conf_get_str(conf, CONF_ssh_rekey_data));
+ write_setting_i(sesskey, "SshNoAuth", conf_get_int(conf, CONF_ssh_no_userauth));
+ write_setting_i(sesskey, "SshBanner", conf_get_int(conf, CONF_ssh_show_banner));
+ write_setting_i(sesskey, "AuthTIS", conf_get_int(conf, CONF_try_tis_auth));
+ write_setting_i(sesskey, "AuthKI", conf_get_int(conf, CONF_try_ki_auth));
+ write_setting_i(sesskey, "AuthGSSAPI", conf_get_int(conf, CONF_try_gssapi_auth));
+#ifndef NO_GSSAPI
+ wprefs(sesskey, "GSSLibs", gsslibkeywords, ngsslibs, conf, CONF_ssh_gsslist);
+ write_setting_filename(sesskey, "GSSCustom", conf_get_filename(conf, CONF_ssh_gss_custom));
+#endif
+ write_setting_i(sesskey, "SshNoShell", conf_get_int(conf, CONF_ssh_no_shell));
+ write_setting_i(sesskey, "SshProt", conf_get_int(conf, CONF_sshprot));
+ write_setting_s(sesskey, "LogHost", conf_get_str(conf, CONF_loghost));
+ write_setting_i(sesskey, "SSH2DES", conf_get_int(conf, CONF_ssh2_des_cbc));
+ write_setting_filename(sesskey, "PublicKeyFile", conf_get_filename(conf, CONF_keyfile));
+ write_setting_s(sesskey, "RemoteCommand", conf_get_str(conf, CONF_remote_cmd));
+ write_setting_i(sesskey, "RFCEnviron", conf_get_int(conf, CONF_rfc_environ));
+ write_setting_i(sesskey, "PassiveTelnet", conf_get_int(conf, CONF_passive_telnet));
+ write_setting_i(sesskey, "BackspaceIsDelete", conf_get_int(conf, CONF_bksp_is_delete));
+ write_setting_i(sesskey, "RXVTHomeEnd", conf_get_int(conf, CONF_rxvt_homeend));
+ write_setting_i(sesskey, "LinuxFunctionKeys", conf_get_int(conf, CONF_funky_type));
+ write_setting_i(sesskey, "NoApplicationKeys", conf_get_int(conf, CONF_no_applic_k));
+ write_setting_i(sesskey, "NoApplicationCursors", conf_get_int(conf, CONF_no_applic_c));
+ write_setting_i(sesskey, "NoMouseReporting", conf_get_int(conf, CONF_no_mouse_rep));
+ write_setting_i(sesskey, "NoRemoteResize", conf_get_int(conf, CONF_no_remote_resize));
+ write_setting_i(sesskey, "NoAltScreen", conf_get_int(conf, CONF_no_alt_screen));
+ write_setting_i(sesskey, "NoRemoteWinTitle", conf_get_int(conf, CONF_no_remote_wintitle));
+ write_setting_i(sesskey, "RemoteQTitleAction", conf_get_int(conf, CONF_remote_qtitle_action));
+ write_setting_i(sesskey, "NoDBackspace", conf_get_int(conf, CONF_no_dbackspace));
+ write_setting_i(sesskey, "NoRemoteCharset", conf_get_int(conf, CONF_no_remote_charset));
+ write_setting_i(sesskey, "ApplicationCursorKeys", conf_get_int(conf, CONF_app_cursor));
+ write_setting_i(sesskey, "ApplicationKeypad", conf_get_int(conf, CONF_app_keypad));
+ write_setting_i(sesskey, "NetHackKeypad", conf_get_int(conf, CONF_nethack_keypad));
+ write_setting_i(sesskey, "AltF4", conf_get_int(conf, CONF_alt_f4));
+ write_setting_i(sesskey, "AltSpace", conf_get_int(conf, CONF_alt_space));
+ write_setting_i(sesskey, "AltOnly", conf_get_int(conf, CONF_alt_only));
+ write_setting_i(sesskey, "ComposeKey", conf_get_int(conf, CONF_compose_key));
+ write_setting_i(sesskey, "CtrlAltKeys", conf_get_int(conf, CONF_ctrlaltkeys));
+ write_setting_i(sesskey, "TelnetKey", conf_get_int(conf, CONF_telnet_keyboard));
+ write_setting_i(sesskey, "TelnetRet", conf_get_int(conf, CONF_telnet_newline));
+ write_setting_i(sesskey, "LocalEcho", conf_get_int(conf, CONF_localecho));
+ write_setting_i(sesskey, "LocalEdit", conf_get_int(conf, CONF_localedit));
+ write_setting_s(sesskey, "Answerback", conf_get_str(conf, CONF_answerback));
+ write_setting_i(sesskey, "AlwaysOnTop", conf_get_int(conf, CONF_alwaysontop));
+ write_setting_i(sesskey, "FullScreenOnAltEnter", conf_get_int(conf, CONF_fullscreenonaltenter));
+ write_setting_i(sesskey, "HideMousePtr", conf_get_int(conf, CONF_hide_mouseptr));
+ write_setting_i(sesskey, "SunkenEdge", conf_get_int(conf, CONF_sunken_edge));
+ write_setting_i(sesskey, "WindowBorder", conf_get_int(conf, CONF_window_border));
+ write_setting_i(sesskey, "CurType", conf_get_int(conf, CONF_cursor_type));
+ write_setting_i(sesskey, "BlinkCur", conf_get_int(conf, CONF_blink_cur));
+ write_setting_i(sesskey, "Beep", conf_get_int(conf, CONF_beep));
+ write_setting_i(sesskey, "BeepInd", conf_get_int(conf, CONF_beep_ind));
+ write_setting_filename(sesskey, "BellWaveFile", conf_get_filename(conf, CONF_bell_wavefile));
+ write_setting_i(sesskey, "BellOverload", conf_get_int(conf, CONF_bellovl));
+ write_setting_i(sesskey, "BellOverloadN", conf_get_int(conf, CONF_bellovl_n));
+ write_setting_i(sesskey, "BellOverloadT", conf_get_int(conf, CONF_bellovl_t)
+#ifdef PUTTY_UNIX_H
+ * 1000
+#endif
+ );
+ write_setting_i(sesskey, "BellOverloadS", conf_get_int(conf, CONF_bellovl_s)
+#ifdef PUTTY_UNIX_H
+ * 1000
+#endif
+ );
+ write_setting_i(sesskey, "ScrollbackLines", conf_get_int(conf, CONF_savelines));
+ write_setting_i(sesskey, "DECOriginMode", conf_get_int(conf, CONF_dec_om));
+ write_setting_i(sesskey, "AutoWrapMode", conf_get_int(conf, CONF_wrap_mode));
+ write_setting_i(sesskey, "LFImpliesCR", conf_get_int(conf, CONF_lfhascr));
+ write_setting_i(sesskey, "CRImpliesLF", conf_get_int(conf, CONF_crhaslf));
+ write_setting_i(sesskey, "DisableArabicShaping", conf_get_int(conf, CONF_arabicshaping));
+ write_setting_i(sesskey, "DisableBidi", conf_get_int(conf, CONF_bidi));
+ write_setting_i(sesskey, "WinNameAlways", conf_get_int(conf, CONF_win_name_always));
+ write_setting_s(sesskey, "WinTitle", conf_get_str(conf, CONF_wintitle));
+ write_setting_i(sesskey, "TermWidth", conf_get_int(conf, CONF_width));
+ write_setting_i(sesskey, "TermHeight", conf_get_int(conf, CONF_height));
+ write_setting_fontspec(sesskey, "Font", conf_get_fontspec(conf, CONF_font));
+ write_setting_i(sesskey, "FontQuality", conf_get_int(conf, CONF_font_quality));
+ write_setting_i(sesskey, "FontVTMode", conf_get_int(conf, CONF_vtmode));
+ write_setting_i(sesskey, "UseSystemColours", conf_get_int(conf, CONF_system_colour));
+ write_setting_i(sesskey, "TryPalette", conf_get_int(conf, CONF_try_palette));
+ write_setting_i(sesskey, "ANSIColour", conf_get_int(conf, CONF_ansi_colour));
+ write_setting_i(sesskey, "Xterm256Colour", conf_get_int(conf, CONF_xterm_256_colour));
+ write_setting_i(sesskey, "BoldAsColour", conf_get_int(conf, CONF_bold_style)-1);
+