~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
42e2077
..
8c71e6d
100644
(file)
--- a/
ssh.c
+++ b/
ssh.c
@@
-2757,7
+2757,7
@@
static int do_ssh1_login(Ssh ssh, unsigned char *in, int inlen, int ispkt)
fflush(stdout);
{
fflush(stdout);
{
- if (
(flags & FLAG_INTERACTIVE) &&
!*ssh->cfg.username) {
+ if (!*ssh->cfg.username) {
if (ssh_get_line && !ssh_getline_pw_only) {
if (!ssh_get_line("login as: ",
s->username, sizeof(s->username), FALSE)) {
if (ssh_get_line && !ssh_getline_pw_only) {
if (!ssh_get_line("login as: ",
s->username, sizeof(s->username), FALSE)) {
@@
-4841,7
+4841,7
@@
static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen, int ispkt)
* with change_username turned off we don't try to get
* it again.
*/
* with change_username turned off we don't try to get
* it again.
*/
- } else if (
(flags & FLAG_INTERACTIVE) &&
!*ssh->cfg.username) {
+ } else if (!*ssh->cfg.username) {
if (ssh_get_line && !ssh_getline_pw_only) {
if (!ssh_get_line("login as: ",
s->username, sizeof(s->username), FALSE)) {
if (ssh_get_line && !ssh_getline_pw_only) {
if (!ssh_get_line("login as: ",
s->username, sizeof(s->username), FALSE)) {
@@
-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;
}