projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Justin Bradford's proxy support patch. Currently supports only HTTP
[u/mdw/putty]
/
ssh.c
diff --git
a/ssh.c
b/ssh.c
index
270d76b
..
6cc79bf
100644
(file)
--- a/
ssh.c
+++ b/
ssh.c
@@
-1872,9
+1872,11
@@
static char *connect_to_host(char *host, int port, char **realhost, int nodelay)
sprintf(buf, "Connecting to %.100s port %d", addrbuf, port);
logevent(buf);
}
sprintf(buf, "Connecting to %.100s port %d", addrbuf, port);
logevent(buf);
}
- s = sk_new(addr, port, 0, 1, nodelay, &fn_table_ptr);
- if ((err = sk_socket_error(s)))
+ s = new_connection(addr, *realhost, port, 0, 1, nodelay, &fn_table_ptr);
+ if ((err = sk_socket_error(s))) {
+ s = NULL;
return err;
return err;
+ }
#ifdef FWHACK
sk_write(s, "connect ", 8);
#ifdef FWHACK
sk_write(s, "connect ", 8);
@@
-2166,8
+2168,7
@@
static int do_ssh1_login(unsigned char *in, int inlen, int ispkt)
break;
case 3:
case 4:
break;
case 3:
case 4:
- random_save_seed();
- exit(0);
+ cleanup_exit(0);
break;
default:
if (((c >= ' ' && c <= '~') ||
break;
default:
if (((c >= ' ' && c <= '~') ||
@@
-2472,8
+2473,7
@@
static int do_ssh1_login(unsigned char *in, int inlen, int ispkt)
break;
case 3:
case 4:
break;
case 3:
case 4:
- random_save_seed();
- exit(0);
+ cleanup_exit(0);
break;
default:
if (pos < sizeof(password)-1)
break;
default:
if (pos < sizeof(password)-1)
@@
-3873,6
+3873,7
@@
static void do_ssh2_authconn(unsigned char *in, int inlen, int ispkt)
static int we_are_in;
static int num_prompts, echo;
static char username[100];
static int we_are_in;
static int num_prompts, echo;
static char username[100];
+ static int got_username;
static char pwprompt[200];
static char password[100];
static void *publickey_blob;
static char pwprompt[200];
static char password[100];
static void *publickey_blob;
@@
-3917,6
+3918,7
@@
static void do_ssh2_authconn(unsigned char *in, int inlen, int ispkt)
* retype it!
*/
username[0] = '\0';
* retype it!
*/
username[0] = '\0';
+ got_username = FALSE;
do {
static int pos;
static char c;
do {
static int pos;
static char c;
@@
-3925,7
+3927,7
@@
static void do_ssh2_authconn(unsigned char *in, int inlen, int ispkt)
* Get a username.
*/
pos = 0;
* Get a username.
*/
pos = 0;
- if (
*
username && !cfg.change_username) {
+ if (
got_
username && !cfg.change_username) {
/*
* We got a username last time round this loop, and
* with change_username turned off we don't try to get
/*
* We got a username last time round this loop, and
* with change_username turned off we don't try to get
@@
-3971,8
+3973,7
@@
static void do_ssh2_authconn(unsigned char *in, int inlen, int ispkt)
break;
case 3:
case 4:
break;
case 3:
case 4:
- random_save_seed();
- exit(0);
+ cleanup_exit(0);
break;
default:
if (((c >= ' ' && c <= '~') ||
break;
default:
if (((c >= ' ' && c <= '~') ||
@@
-3996,6
+3997,7
@@
static void do_ssh2_authconn(unsigned char *in, int inlen, int ispkt)
c_write_str(stuff);
}
}
c_write_str(stuff);
}
}
+ got_username = TRUE;
/*
* Send an authentication request using method "none": (a)
/*
* Send an authentication request using method "none": (a)
@@
-4450,8
+4452,7
@@
static void do_ssh2_authconn(unsigned char *in, int inlen, int ispkt)
break;
case 3:
case 4:
break;
case 3:
case 4:
- random_save_seed();
- exit(0);
+ cleanup_exit(0);
break;
default:
if (pos < sizeof(password)-1)
break;
default:
if (pos < sizeof(password)-1)