aboutsummaryrefslogtreecommitdiffstats
path: root/g10
diff options
context:
space:
mode:
Diffstat (limited to 'g10')
-rw-r--r--g10/ChangeLog7
-rw-r--r--g10/decrypt.c1
-rw-r--r--g10/encode.c2
-rw-r--r--g10/verify.c5
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;
}