зеркало из https://github.com/github/putty.git
Finer granularity of config box handling. SSH packet logging should
now not show up when it's meaningless (in PuTTYtel, in pterm, and in the middle of any non-SSH session), and the Connection panel is inhibited completely in pterm. [originally from svn r3146]
This commit is contained in:
Родитель
3a3e4d1818
Коммит
79426308bf
87
config.c
87
config.c
|
@ -849,14 +849,27 @@ void setup_config_box(struct controlbox *b, struct sesslist *sesslist,
|
|||
ctrl_settitle(b, "Session/Logging", "Options controlling session logging");
|
||||
|
||||
s = ctrl_getset(b, "Session/Logging", "main", NULL);
|
||||
ctrl_radiobuttons(s, "Session logging:", NO_SHORTCUT, 1,
|
||||
HELPCTX(logging_main),
|
||||
dlg_stdradiobutton_handler, I(offsetof(Config, logtype)),
|
||||
"Logging turned off completely", 't', I(LGTYP_NONE),
|
||||
"Log printable output only", 'p', I(LGTYP_ASCII),
|
||||
"Log all session output", 'l', I(LGTYP_DEBUG),
|
||||
"Log SSH packet data", 's', I(LGTYP_PACKETS),
|
||||
NULL);
|
||||
/*
|
||||
* The logging buttons change depending on whether SSH packet
|
||||
* logging can sensibly be available.
|
||||
*/
|
||||
{
|
||||
char *sshlogname;
|
||||
if ((midsession && protocol == PROT_SSH) ||
|
||||
(!midsession && backends[3].name != NULL))
|
||||
sshlogname = "Log SSH packet data";
|
||||
else
|
||||
sshlogname = NULL; /* this will disable the button */
|
||||
ctrl_radiobuttons(s, "Session logging:", NO_SHORTCUT, 1,
|
||||
HELPCTX(logging_main),
|
||||
dlg_stdradiobutton_handler,
|
||||
I(offsetof(Config, logtype)),
|
||||
"Logging turned off completely", 't', I(LGTYP_NONE),
|
||||
"Log printable output only", 'p', I(LGTYP_ASCII),
|
||||
"Log all session output", 'l', I(LGTYP_DEBUG),
|
||||
sshlogname, 's', I(LGTYP_PACKETS),
|
||||
NULL);
|
||||
}
|
||||
ctrl_filesel(s, "Log file name:", 'f',
|
||||
NULL, TRUE, "Select session log file name",
|
||||
HELPCTX(logging_filename),
|
||||
|
@ -1237,36 +1250,42 @@ void setup_config_box(struct controlbox *b, struct sesslist *sesslist,
|
|||
ctrl_columns(s, 1, 100);
|
||||
|
||||
/*
|
||||
* The Connection panel.
|
||||
* The Connection panel. This doesn't show up if we're in a
|
||||
* non-network utility such as pterm. We tell this by being
|
||||
* passed a protocol < 0.
|
||||
*/
|
||||
ctrl_settitle(b, "Connection", "Options controlling the connection");
|
||||
if (protocol >= 0) {
|
||||
ctrl_settitle(b, "Connection", "Options controlling the connection");
|
||||
|
||||
if (!midsession) {
|
||||
s = ctrl_getset(b, "Connection", "data", "Data to send to the server");
|
||||
ctrl_editbox(s, "Terminal-type string", 't', 50,
|
||||
HELPCTX(connection_termtype),
|
||||
dlg_stdeditbox_handler, I(offsetof(Config,termtype)),
|
||||
I(sizeof(((Config *)0)->termtype)));
|
||||
ctrl_editbox(s, "Auto-login username", 'u', 50,
|
||||
HELPCTX(connection_username),
|
||||
dlg_stdeditbox_handler, I(offsetof(Config,username)),
|
||||
I(sizeof(((Config *)0)->username)));
|
||||
}
|
||||
if (!midsession) {
|
||||
s = ctrl_getset(b, "Connection", "data",
|
||||
"Data to send to the server");
|
||||
ctrl_editbox(s, "Terminal-type string", 't', 50,
|
||||
HELPCTX(connection_termtype),
|
||||
dlg_stdeditbox_handler, I(offsetof(Config,termtype)),
|
||||
I(sizeof(((Config *)0)->termtype)));
|
||||
ctrl_editbox(s, "Auto-login username", 'u', 50,
|
||||
HELPCTX(connection_username),
|
||||
dlg_stdeditbox_handler, I(offsetof(Config,username)),
|
||||
I(sizeof(((Config *)0)->username)));
|
||||
}
|
||||
|
||||
s = ctrl_getset(b, "Connection", "keepalive",
|
||||
"Sending of null packets to keep session active");
|
||||
ctrl_editbox(s, "Seconds between keepalives (0 to turn off)", 'k', 20,
|
||||
HELPCTX(connection_keepalive),
|
||||
dlg_stdeditbox_handler, I(offsetof(Config,ping_interval)),
|
||||
I(-1));
|
||||
s = ctrl_getset(b, "Connection", "keepalive",
|
||||
"Sending of null packets to keep session active");
|
||||
ctrl_editbox(s, "Seconds between keepalives (0 to turn off)", 'k', 20,
|
||||
HELPCTX(connection_keepalive),
|
||||
dlg_stdeditbox_handler, I(offsetof(Config,ping_interval)),
|
||||
I(-1));
|
||||
|
||||
if (!midsession) {
|
||||
s = ctrl_getset(b, "Connection", "tcp",
|
||||
"Low-level TCP connection options");
|
||||
ctrl_checkbox(s, "Disable Nagle's algorithm (TCP_NODELAY option)",
|
||||
'n', HELPCTX(connection_nodelay),
|
||||
dlg_stdcheckbox_handler,
|
||||
I(offsetof(Config,tcp_nodelay)));
|
||||
}
|
||||
|
||||
if (!midsession) {
|
||||
s = ctrl_getset(b, "Connection", "tcp",
|
||||
"Low-level TCP connection options");
|
||||
ctrl_checkbox(s, "Disable Nagle's algorithm (TCP_NODELAY option)", 'n',
|
||||
HELPCTX(connection_nodelay),
|
||||
dlg_stdcheckbox_handler,
|
||||
I(offsetof(Config,tcp_nodelay)));
|
||||
}
|
||||
|
||||
if (!midsession) {
|
||||
|
|
|
@ -1969,7 +1969,7 @@ int do_config_box(const char *title, Config *cfg, int midsession)
|
|||
window = gtk_dialog_new();
|
||||
|
||||
ctrlbox = ctrl_new_box();
|
||||
setup_config_box(ctrlbox, &sl, midsession, 0);
|
||||
setup_config_box(ctrlbox, &sl, midsession, cfg->protocol);
|
||||
unix_setup_config_box(ctrlbox, midsession, window);
|
||||
|
||||
gtk_window_set_title(GTK_WINDOW(window), title);
|
||||
|
|
|
@ -18,7 +18,13 @@ Backend *select_backend(Config *cfg)
|
|||
|
||||
int cfgbox(Config *cfg)
|
||||
{
|
||||
return 1; /* no-op in pterm */
|
||||
/*
|
||||
* This is a no-op in pterm, except that we'll ensure the
|
||||
* protocol is set to -1 to inhibit the useless Connection
|
||||
* panel in the config box.
|
||||
*/
|
||||
cfg->protocol = -1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
void cleanup_exit(int code)
|
||||
|
@ -42,6 +48,7 @@ int main(int argc, char **argv)
|
|||
extern void pty_pre_init(void); /* declared in pty.c */
|
||||
|
||||
cmdline_tooltype = TOOLTYPE_NONNETWORK;
|
||||
default_protocol = -1;
|
||||
|
||||
pty_pre_init();
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче