projects
/
tfcrypt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
SIGTSTP: fix quiet mode.
[tfcrypt.git]
/
tfc_random.c
diff --git
a/tfc_random.c
b/tfc_random.c
index 0e90f48be408eda3a2bab9d2cec53122955dc85a..2ca459d9e56a3330104b8f82e800d290db52cdc3 100644
(file)
--- a/
tfc_random.c
+++ b/
tfc_random.c
@@
-2,7
+2,7
@@
* tfcrypt -- high security Threefish encryption tool.
*
* tfcrypt is copyrighted:
* tfcrypt -- high security Threefish encryption tool.
*
* tfcrypt is copyrighted:
- * Copyright (C) 2012-201
8
Andrey Rys. All rights reserved.
+ * Copyright (C) 2012-201
9
Andrey Rys. All rights reserved.
*
* tfcrypt is licensed to you under the terms of std. MIT/X11 license:
*
*
* tfcrypt is licensed to you under the terms of std. MIT/X11 license:
*
@@
-44,7
+44,7
@@
static void get_urandom(const char *src, void *buf, size_t size)
if (fd == -1) fd = open("/dev/random", O_RDONLY);
if (fd == -1) xerror(NO, YES, YES, "random source is required (tried %s)", src);
if (fd == -1) fd = open("/dev/random", O_RDONLY);
if (fd == -1) xerror(NO, YES, YES, "random source is required (tried %s)", src);
-_again: rd = read(fd, ubuf, sz);
+_again: rd =
x
read(fd, ubuf, sz);
if (rd < sz && rd != NOSIZE) {
ubuf += rd;
sz -= rd;
if (rd < sz && rd != NOSIZE) {
ubuf += rd;
sz -= rd;
@@
-93,7
+93,6
@@
void gen_write_bytes(const char *foutname, tfc_fsize offset, tfc_fsize nrbytes)
sigact.sa_flags = SA_RESTART;
sigact.sa_handler = print_crypt_status;
sigaction(SIGUSR1, &sigact, NULL);
sigact.sa_flags = SA_RESTART;
sigact.sa_handler = print_crypt_status;
sigaction(SIGUSR1, &sigact, NULL);
- sigaction(SIGTSTP, &sigact, NULL);
sigaction(SIGALRM, &sigact, NULL);
if (status_timer) setup_next_alarm(status_timer);
sigact.sa_handler = change_status_width;
sigaction(SIGALRM, &sigact, NULL);
if (status_timer) setup_next_alarm(status_timer);
sigact.sa_handler = change_status_width;
@@
-104,11
+103,14
@@
void gen_write_bytes(const char *foutname, tfc_fsize offset, tfc_fsize nrbytes)
sigact.sa_handler = print_crypt_status;
sigaction(SIGINT, &sigact, NULL);
sigaction(SIGTERM, &sigact, NULL);
sigact.sa_handler = print_crypt_status;
sigaction(SIGINT, &sigact, NULL);
sigaction(SIGTERM, &sigact, NULL);
+ sigaction(SIGTSTP, &sigact, NULL);
}
else {
sigact.sa_handler = exit_sigterm;
sigaction(SIGINT, &sigact, NULL);
sigaction(SIGTERM, &sigact, NULL);
}
else {
sigact.sa_handler = exit_sigterm;
sigaction(SIGINT, &sigact, NULL);
sigaction(SIGTERM, &sigact, NULL);
+ sigact.sa_handler = handle_sigtstp;
+ sigaction(SIGTSTP, &sigact, NULL);
}
memset(&sigact, 0, sizeof(struct sigaction));
}
memset(&sigact, 0, sizeof(struct sigaction));
@@
-130,7
+132,7
@@
void gen_write_bytes(const char *foutname, tfc_fsize offset, tfc_fsize nrbytes)
if (offset) {
if (lseek(fd, offset, SEEK_SET) == -1)
if (offset) {
if (lseek(fd, offset, SEEK_SET) == -1)
- xerror(
YES
, NO, NO, "%s: seek failed", foutname);
+ xerror(
ignore_seek_errors
, NO, NO, "%s: seek failed", foutname);
}
if (ctr_mode == TFC_MODE_PLAIN) memset(srcblk, 0, sizeof(srcblk));
}
if (ctr_mode == TFC_MODE_PLAIN) memset(srcblk, 0, sizeof(srcblk));
@@
-148,7
+150,7
@@
void gen_write_bytes(const char *foutname, tfc_fsize offset, tfc_fsize nrbytes)
if (ctr_mode != TFC_MODE_PLAIN) tfc_getrandom(srcblk, lblock);
if (error_action == TFC_ERRACT_SYNC) wrpos = tfc_fdgetpos(fd);
if (ctr_mode != TFC_MODE_PLAIN) tfc_getrandom(srcblk, lblock);
if (error_action == TFC_ERRACT_SYNC) wrpos = tfc_fdgetpos(fd);
-_wagain: lio = write(fd, pblk, lrem);
+_wagain: lio =
x
write(fd, pblk, lrem);
if (lio == NOSIZE) {
if (errno != EIO && catch_all_errors != YES)
xerror(NO, NO, YES, "%s", foutname);
if (lio == NOSIZE) {
if (errno != EIO && catch_all_errors != YES)
xerror(NO, NO, YES, "%s", foutname);