From ffa79828fe69957be5910db025e26a10be94954d Mon Sep 17 00:00:00 2001 From: jacob Date: Wed, 15 Jan 2003 20:47:50 +0000 Subject: [PATCH] Implement Simon's suggestion of moving DEFAULT_PROTOCOL into a per-backend- link-module const variable `be_default_protocol' which suggests a sensible default to the front end (which can ignore it). (DEFAULT_PORT is replaced by a lookup in the backend[] table.) Still not pretty, but it does mean that the recent fix for `ssh-default' doesn't break PuTTYtel. git-svn-id: svn://svn.tartarus.org/sgt/putty@2613 cda61777-01e9-0310-a592-d414129be87e --- be_all.c | 6 ++++++ be_nossh.c | 2 ++ mac/mac.c | 15 ++++++++++++--- putty.h | 18 ++++++------------ window.c | 13 +++++++++++-- 5 files changed, 37 insertions(+), 17 deletions(-) diff --git a/be_all.c b/be_all.c index 96dac532..a48cc707 100644 --- a/be_all.c +++ b/be_all.c @@ -6,6 +6,12 @@ #include #include "putty.h" +#ifdef TELNET_DEFAULT +const int be_default_protocol = PROT_TELNET; +#else +const int be_default_protocol = PROT_SSH; +#endif + struct backend_list backends[] = { {PROT_SSH, "ssh", &ssh_backend}, {PROT_TELNET, "telnet", &telnet_backend}, diff --git a/be_nossh.c b/be_nossh.c index 76355cba..ceef3cf2 100644 --- a/be_nossh.c +++ b/be_nossh.c @@ -7,6 +7,8 @@ #include #include "putty.h" +const int be_default_protocol = PROT_TELNET; + struct backend_list backends[] = { {PROT_TELNET, "telnet", &telnet_backend}, {PROT_RLOGIN, "rlogin", &rlogin_backend}, diff --git a/mac/mac.c b/mac/mac.c index 6335aabe..fa2ec2fe 100644 --- a/mac/mac.c +++ b/mac/mac.c @@ -1,4 +1,4 @@ -/* $Id: mac.c,v 1.29 2003/01/14 19:42:00 ben Exp $ */ +/* $Id: mac.c,v 1.30 2003/01/15 20:47:50 jacob Exp $ */ /* * Copyright (c) 1999 Ben Harris * All rights reserved. @@ -200,8 +200,17 @@ static void mac_startup(void) { windows.about = NULL; windows.licence = NULL; - default_protocol = DEFAULT_PROTOCOL; - default_port = DEFAULT_PORT; + default_protocol = be_default_protocol; + /* Find the appropriate default port. */ + { + default_port = 0; /* illegal */ + int i; + for (i = 0; backends[i].backend != NULL; i++) + if (backends[i].protocol == default_protocol) { + default_port = backends[i].backend->default_port; + break; + } + } flags = FLAG_INTERACTIVE; { diff --git a/putty.h b/putty.h index 28320de0..516760ae 100644 --- a/putty.h +++ b/putty.h @@ -217,6 +217,12 @@ extern struct backend_list { Backend *backend; } backends[]; +/* + * Suggested default protocol provided by the backend link module. + * The application is free to ignore this. + */ +extern const int be_default_protocol; + struct config_tag { /* Basic options */ char host[512]; @@ -371,18 +377,6 @@ struct config_tag { }; /* - * You can compile with -DTELNET_DEFAULT to have telnet by default - * (otherwise SSH is the default). - */ -#ifdef TELNET_DEFAULT -#define DEFAULT_PROTOCOL PROT_TELNET -#define DEFAULT_PORT 23 -#else -#define DEFAULT_PROTOCOL PROT_SSH -#define DEFAULT_PORT 22 -#endif - -/* * Some global flags denoting the type of application. * * FLAG_VERBOSE is set when the user requests verbose details. diff --git a/window.c b/window.c index ac8ac85c..04d3d61f 100644 --- a/window.c +++ b/window.c @@ -272,8 +272,17 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) char *p; int got_host = 0; - default_protocol = DEFAULT_PROTOCOL; - default_port = DEFAULT_PORT; + default_protocol = be_default_protocol; + /* Find the appropriate default port. */ + { + default_port = 0; /* illegal */ + int i; + for (i = 0; backends[i].backend != NULL; i++) + if (backends[i].protocol == default_protocol) { + default_port = backends[i].backend->default_port; + break; + } + } cfg.logtype = LGTYP_NONE; do_defaults(NULL, &cfg); -- 2.11.0