1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-06-30 11:02:48 -05:00

Rationalise access to, and content of, backends[] array.

Should be no significant change in behaviour.
(Well, entering usernames containing commas on Plink's command line will be
a little harder now.)

[originally from svn r7628]
This commit is contained in:
Jacob Nevins
2007-06-30 21:56:44 +00:00
parent 90e7bf4228
commit 46c00b0f38
23 changed files with 132 additions and 177 deletions

View File

@ -596,15 +596,11 @@ int main(int argc, char **argv)
* Override the default protocol if PLINK_PROTOCOL is set.
*/
char *p = getenv("PLINK_PROTOCOL");
int i;
if (p) {
for (i = 0; backends[i].backend != NULL; i++) {
if (!strcmp(backends[i].name, p)) {
default_protocol = cfg.protocol = backends[i].protocol;
default_port = cfg.port =
backends[i].backend->default_port;
break;
}
const Backend *b = backend_from_name(p);
if (b) {
default_protocol = cfg.protocol = b->protocol;
default_port = cfg.port = b->default_port;
}
}
}
@ -681,19 +677,14 @@ int main(int argc, char **argv)
*/
r = strchr(p, ',');
if (r) {
int i, j;
for (i = 0; backends[i].backend != NULL; i++) {
j = strlen(backends[i].name);
if (j == r - p &&
!memcmp(backends[i].name, p, j)) {
default_protocol = cfg.protocol =
backends[i].protocol;
portnumber =
backends[i].backend->default_port;
p = r + 1;
break;
}
const Backend *b;
*r = '\0';
b = backend_from_name(p);
if (b) {
default_protocol = cfg.protocol = b->protocol;
portnumber = b->default_port;
}
p = r + 1;
}
/*
@ -836,19 +827,11 @@ int main(int argc, char **argv)
* Select protocol. This is farmed out into a table in a
* separate file to enable an ssh-free variant.
*/
{
int i;
back = NULL;
for (i = 0; backends[i].backend != NULL; i++)
if (backends[i].protocol == cfg.protocol) {
back = backends[i].backend;
break;
}
if (back == NULL) {
fprintf(stderr,
"Internal fault: Unsupported protocol found\n");
return 1;
}
back = backend_from_proto(cfg.protocol);
if (back == NULL) {
fprintf(stderr,
"Internal fault: Unsupported protocol found\n");
return 1;
}
/*

View File

@ -1085,5 +1085,7 @@ Backend pty_backend = {
pty_provide_logctx,
pty_unthrottle,
pty_cfg_info,
"pty",
-1,
1
};

View File

@ -33,13 +33,7 @@ void cleanup_exit(int code)
Backend *select_backend(Config *cfg)
{
int i;
Backend *back = NULL;
for (i = 0; backends[i].backend != NULL; i++)
if (backends[i].protocol == cfg->protocol) {
back = backends[i].backend;
break;
}
Backend *back = backend_from_proto(cfg->protocol);
assert(back != NULL);
return back;
}
@ -137,13 +131,10 @@ int main(int argc, char **argv)
default_protocol = be_default_protocol;
/* Find the appropriate default port. */
{
int i;
Backend *b = backend_from_proto(default_protocol);
default_port = 0; /* illegal */
for (i = 0; backends[i].backend != NULL; i++)
if (backends[i].protocol == default_protocol) {
default_port = backends[i].backend->default_port;
break;
}
if (b)
default_port = b->default_port;
}
return pt_main(argc, argv);
}

View File

@ -536,5 +536,7 @@ Backend serial_backend = {
serial_provide_logctx,
serial_unthrottle,
serial_cfg_info,
"serial",
PROT_SERIAL,
1
};