aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2016-11-27 11:24:58 -0400
committerDavid Bremner <david@tethera.net>2016-12-07 07:00:40 -0400
commit9259b97fa2659ae6b6dbcd49b04db087e64036ad (patch)
treef6b392607f221b6926e449b9992993a669a8740f
parent27e293f653b2688fc4452a92c99e76c7e97669d1 (diff)
cli/insert: delay database open until after writing mail file
The idea is to get the mail written to disk, even if we can't open the database (e.g. because some other process has a write lock, and notmuch is compiled for non-blocking opens).
-rw-r--r--notmuch-insert.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/notmuch-insert.c b/notmuch-insert.c
index 131f09e2..862da889 100644
--- a/notmuch-insert.c
+++ b/notmuch-insert.c
@@ -532,19 +532,19 @@ notmuch_insert_command (notmuch_config_t *config, int argc, char *argv[])
action.sa_flags = 0;
sigaction (SIGINT, &action, NULL);
- if (notmuch_database_open (notmuch_config_get_database_path (config),
- NOTMUCH_DATABASE_MODE_READ_WRITE, &notmuch))
- return EXIT_FAILURE;
-
- notmuch_exit_if_unmatched_db_uuid (notmuch);
-
/* Write the message to the Maildir new directory. */
newpath = maildir_write_new (config, STDIN_FILENO, maildir);
if (! newpath) {
- notmuch_database_destroy (notmuch);
return EXIT_FAILURE;
}
+ if (notmuch_database_open (notmuch_config_get_database_path (config),
+ NOTMUCH_DATABASE_MODE_READ_WRITE, &notmuch))
+ return EXIT_FAILURE;
+
+ notmuch_exit_if_unmatched_db_uuid (notmuch);
+
+
/* Index the message. */
status = add_file (notmuch, newpath, tag_ops, synchronize_flags, keep);