diff options
Diffstat (limited to 'g10')
-rw-r--r-- | g10/ChangeLog | 7 | ||||
-rw-r--r-- | g10/decrypt.c | 1 | ||||
-rw-r--r-- | g10/encode.c | 2 | ||||
-rw-r--r-- | g10/verify.c | 5 |
4 files changed, 14 insertions, 1 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog index 21f258bfa..c47bb4a4f 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,10 @@ +2006-07-31 Werner Koch <[email protected]> + + * encode.c (encode_crypt_files): Invalidate the whole fd cache. + This is a workaround for problems in iobuf's stupid fd cache. + * decrypt.c (decrypt_messages): Ditto. + * verify.c (verify_files): Ditto. + 2006-07-26 Werner Koch <[email protected]> * keygen.c (gen_card_key_with_backup): Initialize sk_{un}protected. diff --git a/g10/decrypt.c b/g10/decrypt.c index 3482e3915..171e265a9 100644 --- a/g10/decrypt.c +++ b/g10/decrypt.c @@ -183,6 +183,7 @@ decrypt_messages(int nfiles, char *files[]) next_file: /* Note that we emit file_done even after an error. */ write_status( STATUS_FILE_DONE ); + iobuf_ioctl( NULL, 2, 0, NULL); /* Invalidate entire cache. */ xfree(output); } diff --git a/g10/encode.c b/g10/encode.c index 14ecbb54d..251ea3e2c 100644 --- a/g10/encode.c +++ b/g10/encode.c @@ -858,6 +858,7 @@ encode_crypt_files(int nfiles, char **files, STRLIST remusr) log_error("encryption of `%s' failed: %s\n", print_fname_stdin(line), g10_errstr(rc) ); write_status( STATUS_FILE_DONE ); + iobuf_ioctl( NULL, 2, 0, NULL); /* Invalidate entire cache. */ } } else @@ -869,6 +870,7 @@ encode_crypt_files(int nfiles, char **files, STRLIST remusr) log_error("encryption of `%s' failed: %s\n", print_fname_stdin(*files), g10_errstr(rc) ); write_status( STATUS_FILE_DONE ); + iobuf_ioctl( NULL, 2, 0, NULL); /* Invalidate entire cache. */ files++; } } diff --git a/g10/verify.c b/g10/verify.c index 941481aac..082db89de 100644 --- a/g10/verify.c +++ b/g10/verify.c @@ -197,12 +197,15 @@ verify_files( int nfiles, char **files ) * spaces, so that we can process nearly all filenames */ line[strlen(line)-1] = 0; verify_one_file( line ); + iobuf_ioctl( NULL, 2, 0, NULL); /* Invalidate entire cache. */ } } else { /* take filenames from the array */ - for(i=0; i < nfiles; i++ ) + for(i=0; i < nfiles; i++ ) { verify_one_file( files[i] ); + iobuf_ioctl( NULL, 2, 0, NULL); /* Invalidate entire cache. */ + } } return 0; } |