~mdw
/
sgt
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
\k --> \K
[sgt/putty]
/
ssh.c
diff --git
a/ssh.c
b/ssh.c
index
ee5a089
..
8c71e6d
100644
(file)
--- a/
ssh.c
+++ b/
ssh.c
@@
-5003,7
+5003,8
@@
static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, int ispkt)
* Additionally, if we'd just tried password
* authentication, we should break out of this
* whole loop so as to go back to the username
* Additionally, if we'd just tried password
* authentication, we should break out of this
* whole loop so as to go back to the username
- * prompt.
+ * prompt (iff we're configured to allow
+ * username change attempts).
*/
if (s->type == AUTH_TYPE_NONE) {
/* do nothing */
*/
if (s->type == AUTH_TYPE_NONE) {
/* do nothing */
@@
-5017,7
+5018,10
@@
static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, int ispkt)
} else {
c_write_str(ssh, "Access denied\r\n");
logevent("Access denied");
} else {
c_write_str(ssh, "Access denied\r\n");
logevent("Access denied");
- if (s->type == AUTH_TYPE_PASSWORD) {
+ if (s->type == AUTH_TYPE_PASSWORD &&
+ ssh->cfg.change_username) {
+ /* XXX perhaps we should allow
+ * keyboard-interactive to do this too? */
s->we_are_in = FALSE;
break;
}
s->we_are_in = FALSE;
break;
}