1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-25 01:02:24 +00:00

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:
Simon Tatham 2003-04-26 14:35:34 +00:00
parent 3a3e4d1818
commit 79426308bf
3 changed files with 62 additions and 36 deletions

View File

@ -849,14 +849,27 @@ void setup_config_box(struct controlbox *b, struct sesslist *sesslist,
ctrl_settitle(b, "Session/Logging", "Options controlling session logging"); ctrl_settitle(b, "Session/Logging", "Options controlling session logging");
s = ctrl_getset(b, "Session/Logging", "main", NULL); s = ctrl_getset(b, "Session/Logging", "main", NULL);
ctrl_radiobuttons(s, "Session logging:", NO_SHORTCUT, 1, /*
HELPCTX(logging_main), * The logging buttons change depending on whether SSH packet
dlg_stdradiobutton_handler, I(offsetof(Config, logtype)), * logging can sensibly be available.
"Logging turned off completely", 't', I(LGTYP_NONE), */
"Log printable output only", 'p', I(LGTYP_ASCII), {
"Log all session output", 'l', I(LGTYP_DEBUG), char *sshlogname;
"Log SSH packet data", 's', I(LGTYP_PACKETS), if ((midsession && protocol == PROT_SSH) ||
NULL); (!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', ctrl_filesel(s, "Log file name:", 'f',
NULL, TRUE, "Select session log file name", NULL, TRUE, "Select session log file name",
HELPCTX(logging_filename), HELPCTX(logging_filename),
@ -1237,36 +1250,42 @@ void setup_config_box(struct controlbox *b, struct sesslist *sesslist,
ctrl_columns(s, 1, 100); 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) { if (!midsession) {
s = ctrl_getset(b, "Connection", "data", "Data to send to the server"); s = ctrl_getset(b, "Connection", "data",
ctrl_editbox(s, "Terminal-type string", 't', 50, "Data to send to the server");
HELPCTX(connection_termtype), ctrl_editbox(s, "Terminal-type string", 't', 50,
dlg_stdeditbox_handler, I(offsetof(Config,termtype)), HELPCTX(connection_termtype),
I(sizeof(((Config *)0)->termtype))); dlg_stdeditbox_handler, I(offsetof(Config,termtype)),
ctrl_editbox(s, "Auto-login username", 'u', 50, I(sizeof(((Config *)0)->termtype)));
HELPCTX(connection_username), ctrl_editbox(s, "Auto-login username", 'u', 50,
dlg_stdeditbox_handler, I(offsetof(Config,username)), HELPCTX(connection_username),
I(sizeof(((Config *)0)->username))); dlg_stdeditbox_handler, I(offsetof(Config,username)),
} I(sizeof(((Config *)0)->username)));
}
s = ctrl_getset(b, "Connection", "keepalive", s = ctrl_getset(b, "Connection", "keepalive",
"Sending of null packets to keep session active"); "Sending of null packets to keep session active");
ctrl_editbox(s, "Seconds between keepalives (0 to turn off)", 'k', 20, ctrl_editbox(s, "Seconds between keepalives (0 to turn off)", 'k', 20,
HELPCTX(connection_keepalive), HELPCTX(connection_keepalive),
dlg_stdeditbox_handler, I(offsetof(Config,ping_interval)), dlg_stdeditbox_handler, I(offsetof(Config,ping_interval)),
I(-1)); 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) { if (!midsession) {

View File

@ -1969,7 +1969,7 @@ int do_config_box(const char *title, Config *cfg, int midsession)
window = gtk_dialog_new(); window = gtk_dialog_new();
ctrlbox = ctrl_new_box(); 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); unix_setup_config_box(ctrlbox, midsession, window);
gtk_window_set_title(GTK_WINDOW(window), title); gtk_window_set_title(GTK_WINDOW(window), title);

View File

@ -18,7 +18,13 @@ Backend *select_backend(Config *cfg)
int cfgbox(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) 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 */ extern void pty_pre_init(void); /* declared in pty.c */
cmdline_tooltype = TOOLTYPE_NONNETWORK; cmdline_tooltype = TOOLTYPE_NONNETWORK;
default_protocol = -1;
pty_pre_init(); pty_pre_init();