X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=tfcrypt.c;h=4eb2b04cc5d620af0741ed66af20c1f7998d54e1;hb=13cc886eb2edfe7be4e65067be6df01e2f08436a;hp=b6bbe73de3cd3f3d38497fe2c8e11cd2697af735;hpb=cd6f1f9a84c17dbdf6ab320a04eae300502b898d;p=tfcrypt.git diff --git a/tfcrypt.c b/tfcrypt.c index b6bbe73..4eb2b04 100644 --- a/tfcrypt.c +++ b/tfcrypt.c @@ -34,10 +34,12 @@ static void open_log(const char *logfile) { int fd; + if (!strcmp(logfile, "-")) return; + fd = open(logfile, O_WRONLY | O_CREAT | O_LARGEFILE | O_TRUNC, 0666); if (fd == -1) xerror(NO, NO, YES, "%s", logfile); xclose(2); - if (dup2(fd, 2) == -1) xerror(NO, NO, YES, "dup2(%d, 2) for %s", fd, logfile); + if (dup2(fd, 2) == -1) xexit(2); xclose(fd); do_statline_dynamic = NO; } @@ -332,6 +334,8 @@ _baddfname: do_full_key = YES; else if (!strcmp(s, "showsecrets")) show_secrets = YES; + else if (!strcmp(s, "finished")) + show_when_done = YES; else if (!strncmp(s, "logfile", 7) && *(s+7) == '=') open_log(s+8); else if (!strncmp(s, "iobs", 4) && *(s+4) == '=') { @@ -1089,7 +1093,7 @@ _plain: sigact.sa_handler = print_crypt_status; sigaction(SIGUSR1, &sigact, NULL); sigaction(SIGALRM, &sigact, NULL); - if (status_timer) setup_next_alarm(status_timer); + if (status_timer) setup_next_alarm(status_timer > 1000000 ? 1000000 : status_timer); sigact.sa_handler = change_status_width; sigaction(SIGQUIT, &sigact, NULL); sigact.sa_handler = change_status_timer;