diff options
Diffstat (limited to 'sshconnect.c')
-rw-r--r-- | sshconnect.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/sshconnect.c b/sshconnect.c index 6a9b5489e..ed2125230 100644 --- a/sshconnect.c +++ b/sshconnect.c | |||
@@ -13,7 +13,7 @@ | |||
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include "includes.h" | 15 | #include "includes.h" |
16 | RCSID("$OpenBSD: sshconnect.c,v 1.111 2001/10/01 21:51:16 markus Exp $"); | 16 | RCSID("$OpenBSD: sshconnect.c,v 1.112 2001/10/06 00:14:50 markus Exp $"); |
17 | 17 | ||
18 | #include <openssl/bn.h> | 18 | #include <openssl/bn.h> |
19 | 19 | ||
@@ -491,7 +491,7 @@ ssh_exchange_identification(void) | |||
491 | 491 | ||
492 | /* defaults to 'no' */ | 492 | /* defaults to 'no' */ |
493 | static int | 493 | static int |
494 | read_yes_or_no(const char *prompt, int defval) | 494 | confirm(const char *prompt) |
495 | { | 495 | { |
496 | char buf[1024]; | 496 | char buf[1024]; |
497 | FILE *f; | 497 | FILE *f; |
@@ -499,33 +499,22 @@ read_yes_or_no(const char *prompt, int defval) | |||
499 | 499 | ||
500 | if (options.batch_mode) | 500 | if (options.batch_mode) |
501 | return 0; | 501 | return 0; |
502 | |||
503 | if (isatty(STDIN_FILENO)) | 502 | if (isatty(STDIN_FILENO)) |
504 | f = stdin; | 503 | f = stdin; |
505 | else | 504 | else |
506 | f = fopen(_PATH_TTY, "rw"); | 505 | f = fopen(_PATH_TTY, "rw"); |
507 | |||
508 | if (f == NULL) | 506 | if (f == NULL) |
509 | return 0; | 507 | return 0; |
510 | |||
511 | fflush(stdout); | 508 | fflush(stdout); |
512 | |||
513 | while (1) { | 509 | while (1) { |
514 | fprintf(stderr, "%s", prompt); | 510 | fprintf(stderr, "%s", prompt); |
515 | if (fgets(buf, sizeof(buf), f) == NULL) { | 511 | if (fgets(buf, sizeof(buf), f) == NULL) { |
516 | /* | ||
517 | * Print a newline (the prompt probably didn\'t have | ||
518 | * one). | ||
519 | */ | ||
520 | fprintf(stderr, "\n"); | 512 | fprintf(stderr, "\n"); |
521 | strlcpy(buf, "no", sizeof buf); | 513 | strlcpy(buf, "no", sizeof buf); |
522 | } | 514 | } |
523 | /* Remove newline from response. */ | 515 | /* Remove newline from response. */ |
524 | if (strchr(buf, '\n')) | 516 | if (strchr(buf, '\n')) |
525 | *strchr(buf, '\n') = 0; | 517 | *strchr(buf, '\n') = 0; |
526 | |||
527 | if (buf[0] == 0) | ||
528 | retval = defval; | ||
529 | if (strcmp(buf, "yes") == 0) | 518 | if (strcmp(buf, "yes") == 0) |
530 | retval = 1; | 519 | retval = 1; |
531 | else if (strcmp(buf, "no") == 0) | 520 | else if (strcmp(buf, "no") == 0) |
@@ -713,7 +702,7 @@ check_host_key(char *host, struct sockaddr *hostaddr, Key *host_key, | |||
713 | "Are you sure you want to continue connecting " | 702 | "Are you sure you want to continue connecting " |
714 | "(yes/no)? ", host, ip, type, fp); | 703 | "(yes/no)? ", host, ip, type, fp); |
715 | xfree(fp); | 704 | xfree(fp); |
716 | if (!read_yes_or_no(prompt, -1)) { | 705 | if (!confirm(prompt)) { |
717 | log("Aborted by user!"); | 706 | log("Aborted by user!"); |
718 | goto fail; | 707 | goto fail; |
719 | } | 708 | } |
@@ -830,8 +819,8 @@ check_host_key(char *host, struct sockaddr *hostaddr, Key *host_key, | |||
830 | error("Exiting, you have requested strict checking."); | 819 | error("Exiting, you have requested strict checking."); |
831 | goto fail; | 820 | goto fail; |
832 | } else if (options.strict_host_key_checking == 2) { | 821 | } else if (options.strict_host_key_checking == 2) { |
833 | if (!read_yes_or_no("Are you sure you want " | 822 | if (!confirm("Are you sure you want " |
834 | "to continue connecting (yes/no)? ", -1)) { | 823 | "to continue connecting (yes/no)? ")) { |
835 | log("Aborted by user!"); | 824 | log("Aborted by user!"); |
836 | goto fail; | 825 | goto fail; |
837 | } | 826 | } |