diff options
author | Matt Johnston <matt@ucc.asn.au> | 2008-11-06 13:16:55 +0000 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2008-11-06 13:16:55 +0000 |
commit | 800810a1816a0ac29ba2f5c77f8eed11a97566af (patch) | |
tree | df044012cc8a0c94635a4469c3078d0e14497c3d /cli-auth.c | |
parent | 3301bad391f5792e9aa35a01d4e0aa0566fef303 (diff) | |
parent | e80f8e8c09dab7cece30660a33e2a2bfd5d5f571 (diff) |
propagate from branch 'au.asn.ucc.matt.dropbear' (head cdcc3c729e29544e8b98a408e2dc60e4483dfd2a)
to branch 'au.asn.ucc.matt.dropbear.insecure-nocrypto' (head 0ca38a1cf349f7426ac9de34ebe4c3e3735effab)
--HG--
branch : insecure-nocrypto
extra : convert_revision : dbb093e087a68abf2e54ab0b711af70771ddb29d
Diffstat (limited to 'cli-auth.c')
-rw-r--r-- | cli-auth.c | 17 |
1 files changed, 14 insertions, 3 deletions
@@ -229,6 +229,8 @@ void recv_msg_userauth_failure() { void recv_msg_userauth_success() { TRACE(("received msg_userauth_success")) + /* Note: in delayed-zlib mode, setting authdone here + * will enable compression in the transport layer */ ses.authstate.authdone = 1; cli_ses.state = USERAUTH_SUCCESS_RCVD; cli_ses.lastauthtype = AUTH_TYPE_NONE; @@ -236,8 +238,8 @@ void recv_msg_userauth_success() { void cli_auth_try() { - TRACE(("enter cli_auth_try")) int finished = 0; + TRACE(("enter cli_auth_try")) CHECKCLEARTOWRITE(); @@ -287,11 +289,20 @@ void cli_auth_try() { /* A helper for getpass() that exits if the user cancels. The returned * password is statically allocated by getpass() */ -char* getpass_or_cancel() +char* getpass_or_cancel(char* prompt) { char* password = NULL; + +#ifdef DROPBEAR_PASSWORD_ENV + /* Password provided in an environment var */ + password = getenv(DROPBEAR_PASSWORD_ENV); + if (password) + { + return password; + } +#endif - password = getpass("Password: "); + password = getpass(prompt); /* 0x03 is a ctrl-c character in the buffer. */ if (password == NULL || strchr(password, '\3') != NULL) { |