if (event == EVENT_REFRESH) {
int i;
- static const struct { char *s; int c; } ciphers[] = {
+ static const struct { const char *s; int c; } ciphers[] = {
+ { "ChaCha20 (SSH-2 only)", CIPHER_CHACHA20 },
{ "3DES", CIPHER_3DES },
{ "Blowfish", CIPHER_BLOWFISH },
{ "DES", CIPHER_DES },
for (i = 0; i < CIPHER_MAX; i++) {
int c = conf_get_int_int(conf, CONF_ssh_cipherlist, i);
int j;
- char *cstr = NULL;
+ const char *cstr = NULL;
for (j = 0; j < (sizeof ciphers) / (sizeof ciphers[0]); j++) {
if (ciphers[j].c == c) {
cstr = ciphers[j].s;
if (event == EVENT_REFRESH) {
int i;
- static const struct { char *s; int k; } kexes[] = {
+ static const struct { const char *s; int k; } kexes[] = {
{ "Diffie-Hellman group 1", KEX_DHGROUP1 },
{ "Diffie-Hellman group 14", KEX_DHGROUP14 },
{ "Diffie-Hellman group exchange", KEX_DHGEX },
for (i = 0; i < KEX_MAX; i++) {
int k = conf_get_int_int(conf, CONF_ssh_kexlist, i);
int j;
- char *kstr = NULL;
+ const char *kstr = NULL;
for (j = 0; j < (sizeof kexes) / (sizeof kexes[0]); j++) {
if (kexes[j].k == k) {
kstr = kexes[j].s;
if (event == EVENT_REFRESH) {
int nprinters, i;
printer_enum *pe;
- char *printer;
+ const char *printer;
dlg_update_start(ctrl, dlg);
/*
static void sessionsaver_data_free(void *ssdv)
{
struct sessionsaver_data *ssd = (struct sessionsaver_data *)ssdv;
+ get_sesslist(&ssd->sesslist, FALSE);
sfree(ssd->savedsession);
sfree(ssd);
}
}
} else if (event == EVENT_ACTION) {
if (ctrl == pfd->addbutton) {
- char *family, *type, *src, *key, *val;
+ const char *family, *type;
+ char *src, *key, *val;
int whichbutton;
#ifndef NO_IPV6
if (i < 0) {
dlg_beep(dlg);
} else {
- char *key, *val, *p;
+ char *key, *p;
+ const char *val;
key = conf_get_str_nthstrkey(conf, CONF_portfwd, i);
if (key) {
* logging can sensibly be available.
*/
{
- char *sshlogname, *sshrawlogname;
+ const char *sshlogname, *sshrawlogname;
if ((midsession && protocol == PROT_SSH) ||
(!midsession && backend_from_proto(PROT_SSH))) {
sshlogname = "SSH packets";
HELPCTX(logging_filename),
conf_filesel_handler, I(CONF_logfilename));
ctrl_text(s, "(Log file name can contain &Y, &M, &D for date,"
- " &T for time, and &H for host name)",
+ " &T for time, &H for host name, and &P for port number)",
HELPCTX(logging_filename));
ctrl_radiobuttons(s, "What to do if the log file already exists:", 'e', 1,
HELPCTX(logging_exists),
#endif
{
- char *label = backend_from_proto(PROT_SSH) ?
+ const char *label = backend_from_proto(PROT_SSH) ?
"Logical name of remote host (e.g. for SSH key lookup):" :
"Logical name of remote host:";
s = ctrl_getset(b, "Connection", "identity",
HELPCTX(proxy_command),
conf_editbox_handler,
I(CONF_proxy_telnet_command), I(1));
+
+ ctrl_radiobuttons(s, "Print proxy diagnostics "
+ "in the terminal window", 'r', 5,
+ HELPCTX(proxy_main),
+ conf_radiobutton_handler,
+ I(CONF_proxy_log_to_term),
+ "No", I(FORCE_OFF),
+ "Yes", I(FORCE_ON),
+ "Only until session starts", I(AUTO), NULL);
}
/*
if (!midsession) {
/*
- * The Connection/SSH/Bugs panel.
+ * The Connection/SSH/Bugs panels.
*/
ctrl_settitle(b, "Connection/SSH/Bugs",
"Workarounds for SSH server bugs");
ctrl_droplist(s, "Miscomputes SSH-2 encryption keys", 'e', 20,
HELPCTX(ssh_bugs_derivekey2),
sshbug_handler, I(CONF_sshbug_derivekey2));
+
+ ctrl_settitle(b, "Connection/SSH/More bugs",
+ "Further workarounds for SSH server bugs");
+
+ s = ctrl_getset(b, "Connection/SSH/More bugs", "main",
+ "Detection of known bugs in SSH servers");
ctrl_droplist(s, "Requires padding on SSH-2 RSA signatures", 'p', 20,
HELPCTX(ssh_bugs_rsapad2),
sshbug_handler, I(CONF_sshbug_rsapad2));