/* If at this point we have a valid session, go! */
if (*cfg2.host) {
*cfg = cfg2; /* structure copy */
+ cfg->remote_cmd_ptr = cfg->remote_cmd; /* nasty */
dlg_end(dlg, 1);
} else
dlg_beep(dlg);
+ return;
}
/*
"Always append to the end of it", I(LGXF_APN),
"Ask the user every time", I(LGXF_ASK), NULL);
+ if ((midsession && protocol == PROT_SSH) ||
+ (!midsession && backends[3].name != NULL)) {
+ s = ctrl_getset(b, "Session/Logging", "ssh",
+ "Options specific to SSH packet logging");
+ ctrl_checkbox(s, "Omit known password fields", 'k',
+ HELPCTX(logging_ssh_omit_password),
+ dlg_stdcheckbox_handler, I(offsetof(Config,logomitpass)));
+ ctrl_checkbox(s, "Omit session data", 'd',
+ HELPCTX(logging_ssh_omit_data),
+ dlg_stdcheckbox_handler, I(offsetof(Config,logomitdata)));
+ }
+
/*
* The Terminal panel.
*/
ctrl_checkbox(s, "Disable remote-controlled character set configuration",
'r', HELPCTX(features_charset), dlg_stdcheckbox_handler,
I(offsetof(Config,no_remote_charset)));
+ ctrl_checkbox(s, "Disable Arabic text shaping",
+ 'l', HELPCTX(features_arabicshaping), dlg_stdcheckbox_handler,
+ I(offsetof(Config, arabicshaping)));
+ ctrl_checkbox(s, "Disable bidirectional text display",
+ 'd', HELPCTX(features_bidi), dlg_stdcheckbox_handler,
+ I(offsetof(Config, bidi)));
/*
* The Window panel.
'r', 100, HELPCTX(translation_codepage),
codepage_handler, P(NULL), P(NULL));
- str = dupprintf("Adjust how %s displays line drawing characters", appname);
+ str = dupprintf("Adjust how %s handles line drawing characters", appname);
s = ctrl_getset(b, "Window/Translation", "linedraw", str);
sfree(str);
ctrl_radiobuttons(s, "Handling of line drawing characters:", NO_SHORTCUT,1,
"Use Unicode line drawing code points",'u',I(VT_UNICODE),
"Poor man's line drawing (+, - and |)",'p',I(VT_POORMAN),
NULL);
+ ctrl_checkbox(s, "Copy and paste line drawing characters as lqqqk",'d',
+ HELPCTX(selection_linedraw),
+ dlg_stdcheckbox_handler, I(offsetof(Config,rawcnp)));
/*
* The Window/Selection panel.
*/
ctrl_settitle(b, "Window/Selection", "Options controlling copy and paste");
-
- s = ctrl_getset(b, "Window/Selection", "trans",
- "Translation of pasted characters");
- ctrl_checkbox(s, "Paste VT100 line drawing chars as lqqqk",'d',
- HELPCTX(selection_linedraw),
- dlg_stdcheckbox_handler, I(offsetof(Config,rawcnp)));
s = ctrl_getset(b, "Window/Selection", "mouse",
"Control use of mouse");
s = ctrl_getset(b, "Window/Colours", "general",
"General options for colour usage");
+ ctrl_checkbox(s, "Allow terminal to specify ANSI colours", 'i',
+ HELPCTX(colours_ansi),
+ dlg_stdcheckbox_handler, I(offsetof(Config,ansi_colour)));
ctrl_checkbox(s, "Bolded text is a different colour", 'b',
HELPCTX(colours_bold),
dlg_stdcheckbox_handler, I(offsetof(Config,bold_colour)));
HELPCTX(connection_termtype),
dlg_stdeditbox_handler, I(offsetof(Config,termtype)),
I(sizeof(((Config *)0)->termtype)));
+ ctrl_editbox(s, "Terminal speeds", 's', 50,
+ HELPCTX(connection_termspeed),
+ dlg_stdeditbox_handler, I(offsetof(Config,termspeed)),
+ I(sizeof(((Config *)0)->termspeed)));
ctrl_editbox(s, "Auto-login username", 'u', 50,
HELPCTX(connection_username),
dlg_stdeditbox_handler, I(offsetof(Config,username)),
I(sizeof(((Config *)0)->username)));
+
+ ctrl_text(s, "Environment variables:", HELPCTX(telnet_environ));
+ ctrl_columns(s, 2, 80, 20);
+ ed = (struct environ_data *)
+ ctrl_alloc(b, sizeof(struct environ_data));
+ ed->varbox = ctrl_editbox(s, "Variable", 'v', 60,
+ HELPCTX(telnet_environ),
+ environ_handler, P(ed), P(NULL));
+ ed->varbox->generic.column = 0;
+ ed->valbox = ctrl_editbox(s, "Value", 'l', 60,
+ HELPCTX(telnet_environ),
+ environ_handler, P(ed), P(NULL));
+ ed->valbox->generic.column = 0;
+ ed->addbutton = ctrl_pushbutton(s, "Add", 'd',
+ HELPCTX(telnet_environ),
+ environ_handler, P(ed));
+ ed->addbutton->generic.column = 1;
+ ed->rembutton = ctrl_pushbutton(s, "Remove", 'r',
+ HELPCTX(telnet_environ),
+ environ_handler, P(ed));
+ ed->rembutton->generic.column = 1;
+ ctrl_columns(s, 1, 100);
+ ed->listbox = ctrl_listbox(s, NULL, NO_SHORTCUT,
+ HELPCTX(telnet_environ),
+ environ_handler, P(ed));
+ ed->listbox->listbox.height = 3;
+ ed->listbox->listbox.ncols = 2;
+ ed->listbox->listbox.percentages = snewn(2, int);
+ ed->listbox->listbox.percentages[0] = 30;
+ ed->listbox->listbox.percentages[1] = 70;
}
s = ctrl_getset(b, "Connection", "keepalive",
'n', HELPCTX(connection_nodelay),
dlg_stdcheckbox_handler,
I(offsetof(Config,tcp_nodelay)));
+ ctrl_checkbox(s, "Enable TCP keepalives (SO_KEEPALIVE option)",
+ 'p', HELPCTX(connection_tcpkeepalive),
+ dlg_stdcheckbox_handler,
+ I(offsetof(Config,tcp_keepalives)));
}
}
ctrl_settitle(b, "Connection/Telnet",
"Options controlling Telnet connections");
- if (!midsession) {
- s = ctrl_getset(b, "Connection/Telnet", "data",
- "Data to send to the server");
- ctrl_editbox(s, "Terminal-speed string", 's', 50,
- HELPCTX(telnet_termspeed),
- dlg_stdeditbox_handler, I(offsetof(Config,termspeed)),
- I(sizeof(((Config *)0)->termspeed)));
- ctrl_text(s, "Environment variables:", HELPCTX(telnet_environ));
- ctrl_columns(s, 2, 80, 20);
- ed = (struct environ_data *)
- ctrl_alloc(b, sizeof(struct environ_data));
- ed->varbox = ctrl_editbox(s, "Variable", 'v', 60,
- HELPCTX(telnet_environ),
- environ_handler, P(ed), P(NULL));
- ed->varbox->generic.column = 0;
- ed->valbox = ctrl_editbox(s, "Value", 'l', 60,
- HELPCTX(telnet_environ),
- environ_handler, P(ed), P(NULL));
- ed->valbox->generic.column = 0;
- ed->addbutton = ctrl_pushbutton(s, "Add", 'd',
- HELPCTX(telnet_environ),
- environ_handler, P(ed));
- ed->addbutton->generic.column = 1;
- ed->rembutton = ctrl_pushbutton(s, "Remove", 'r',
- HELPCTX(telnet_environ),
- environ_handler, P(ed));
- ed->rembutton->generic.column = 1;
- ctrl_columns(s, 1, 100);
- ed->listbox = ctrl_listbox(s, NULL, NO_SHORTCUT,
- HELPCTX(telnet_environ),
- environ_handler, P(ed));
- ed->listbox->listbox.height = 3;
- ed->listbox->listbox.ncols = 2;
- ed->listbox->listbox.percentages = snewn(2, int);
- ed->listbox->listbox.percentages[0] = 30;
- ed->listbox->listbox.percentages[1] = 70;
- }
-
s = ctrl_getset(b, "Connection/Telnet", "protocol",
"Telnet protocol adjustments");
I(offsetof(Config, passive_telnet)),
"Passive", I(1), "Active", I(0), NULL);
}
- ctrl_checkbox(s, "Keyboard sends telnet Backspace and Interrupt", 'k',
+ ctrl_checkbox(s, "Keyboard sends Telnet special commands", 'k',
HELPCTX(telnet_specialkeys),
dlg_stdcheckbox_handler,
I(offsetof(Config,telnet_keyboard)));
- ctrl_checkbox(s, "Return key sends telnet New Line instead of ^M",
- NO_SHORTCUT, HELPCTX(telnet_newline),
+ ctrl_checkbox(s, "Return key sends Telnet New Line instead of ^M",
+ 'm', HELPCTX(telnet_newline),
dlg_stdcheckbox_handler,
I(offsetof(Config,telnet_newline)));
}
s = ctrl_getset(b, "Connection/Rlogin", "data",
"Data to send to the server");
- ctrl_editbox(s, "Terminal-speed string", 's', 50,
- HELPCTX(rlogin_termspeed),
- dlg_stdeditbox_handler, I(offsetof(Config,termspeed)),
- I(sizeof(((Config *)0)->termspeed)));
ctrl_editbox(s, "Local username:", 'l', 50,
HELPCTX(rlogin_localuser),
dlg_stdeditbox_handler, I(offsetof(Config,localusername)),
HELPCTX(ssh_nopty),
dlg_stdcheckbox_handler,
I(offsetof(Config,nopty)));
+ ctrl_checkbox(s, "Don't start a shell or command at all", 'n',
+ HELPCTX(ssh_noshell),
+ dlg_stdcheckbox_handler,
+ I(offsetof(Config,ssh_no_shell)));
ctrl_checkbox(s, "Enable compression", 'e',
HELPCTX(ssh_compress),
dlg_stdcheckbox_handler,
"1 only", 'l', I(0),
"1", '1', I(1),
"2", '2', I(2),
- "2 only", 'n', I(3), NULL);
+ "2 only", 'y', I(3), NULL);
s = ctrl_getset(b, "Connection/SSH", "encryption", "Encryption options");
c = ctrl_draglist(s, "Encryption cipher selection policy:", 's',