From 4356788b3c0145a0438d78b3dc5ed1cb9afa54fc Mon Sep 17 00:00:00 2001 From: Jochen Eisinger Date: Wed, 31 Dec 2003 16:10:29 +0000 Subject: [PATCH] Wed Dec 31 17:06:55 CET 2003 Jochen Eisinger * Don't use silc_get_input, it's obviously not reliable. Fixes issue when the current key expires. Affect file irssi/src/silc/core/clientutils.c --- apps/irssi/src/silc/core/clientutil.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/apps/irssi/src/silc/core/clientutil.c b/apps/irssi/src/silc/core/clientutil.c index 8f163932..74c41837 100644 --- a/apps/irssi/src/silc/core/clientutil.c +++ b/apps/irssi/src/silc/core/clientutil.c @@ -294,7 +294,7 @@ int silc_client_check_silc_dir() /* 86400 is seconds in a day. */ if (curtime >= (86400 * SILC_CLIENT_KEY_EXPIRES)) { - char *answer; + char answer; fprintf(stdout, "----------------------------------------------------\n" @@ -306,14 +306,16 @@ int silc_client_check_silc_dir() "----------------------------------------------------\n", SILC_CLIENT_KEY_EXPIRES, SILC_CLIENT_KEY_EXPIRES); - answer = silc_get_input("Would you like to create a new key pair " - "(y/n)?: ", FALSE); - while (!answer) { - printf("Answer 'y' or 'n' and press Enter\n"); - answer = silc_get_input("Would you like to create a new key pair " - "(y/n)?: ", FALSE); + fprintf(stdout, "Would you like to create a new key pair (y/n)?: "); + answer = getchar(); + + while ((answer != 'y') && (answer != 'Y') && (answer != 'n') && (answer != 'N')) { + while (answer != '\n') answer = getchar(); + fprintf(stdout, "Answer 'y' or 'n' and press \n"); + fprintf(stdout, "Would you like to create a new key pair (y/n)?: "); + answer = getchar(); } - if (answer[0] == 'Y' || answer[0] == 'y') { + if (answer == 'Y' || answer == 'y') { silc_create_key_pair(SILC_CLIENT_DEF_PKCS, SILC_CLIENT_DEF_PKCS_LEN, file_public_key, file_private_key, NULL, @@ -328,7 +330,6 @@ int silc_client_check_silc_dir() utime(file_private_key, &utim); #endif } - silc_free(answer); } return TRUE; -- 2.43.0