X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=database.cc;h=c5d774763307ab8b9c1b862ef7c0b4371d586511;hp=578dce4b70c2d1740bb57f5c34a6f4a7b0c10214;hb=c78358fa8adc0e8fa4f889e479df76e8df186264;hpb=6a4992bc611881b363583b4a20fc530c770aedd8 diff --git a/database.cc b/database.cc index 578dce4b..c5d77476 100644 --- a/database.cc +++ b/database.cc @@ -50,42 +50,6 @@ notmuch_status_to_string (notmuch_status_t status) } } -/* "128 bits of thread-id ought to be enough for anybody" */ -#define NOTMUCH_THREAD_ID_BITS 128 -#define NOTMUCH_THREAD_ID_DIGITS (NOTMUCH_THREAD_ID_BITS / 4) -typedef struct _thread_id { - char str[NOTMUCH_THREAD_ID_DIGITS + 1]; -} thread_id_t; - -static void -thread_id_generate (thread_id_t *thread_id) -{ - static int seeded = 0; - FILE *dev_random; - uint32_t value; - char *s; - int i; - - if (! seeded) { - dev_random = fopen ("/dev/random", "r"); - if (dev_random == NULL) { - srand (time (NULL)); - } else { - fread ((void *) &value, sizeof (value), 1, dev_random); - srand (value); - fclose (dev_random); - } - seeded = 1; - } - - s = thread_id->str; - for (i = 0; i < NOTMUCH_THREAD_ID_DIGITS; i += 8) { - value = rand (); - sprintf (s, "%08x", value); - s += 8; - } -} - /* XXX: We should drop this function and convert all callers to call * _notmuch_message_add_term instead. */ static void @@ -489,7 +453,7 @@ notmuch_database_add_message (notmuch_database_t *notmuch, { Xapian::WritableDatabase *db = notmuch->xapian_db; Xapian::Document doc; - notmuch_message_file_t *message; + notmuch_message_file_t *message_file; notmuch_status_t ret = NOTMUCH_STATUS_SUCCESS; GPtrArray *parents, *thread_ids; @@ -501,15 +465,20 @@ notmuch_database_add_message (notmuch_database_t *notmuch, time_t time_value; unsigned int i; - message = notmuch_message_file_open (filename); + message_file = notmuch_message_file_open (filename); + if (message_file == NULL) { + ret = NOTMUCH_STATUS_FILE_ERROR; + goto DONE; + } - notmuch_message_file_restrict_headers (message, + notmuch_message_file_restrict_headers (message_file, "date", "from", "in-reply-to", "message-id", "references", "subject", + "to", (char *) NULL); try { @@ -519,16 +488,16 @@ notmuch_database_add_message (notmuch_database_t *notmuch, parents = g_ptr_array_new (); - refs = notmuch_message_file_get_header (message, "references"); + refs = notmuch_message_file_get_header (message_file, "references"); parse_references (parents, refs); - in_reply_to = notmuch_message_file_get_header (message, "in-reply-to"); + in_reply_to = notmuch_message_file_get_header (message_file, "in-reply-to"); parse_references (parents, in_reply_to); for (i = 0; i < parents->len; i++) add_term (doc, "ref", (char *) g_ptr_array_index (parents, i)); - header = notmuch_message_file_get_header (message, "message-id"); + header = notmuch_message_file_get_header (message_file, "message-id"); if (header) { message_id = parse_message_id (header, NULL); /* So the header value isn't RFC-compliant, but it's @@ -589,15 +558,15 @@ notmuch_database_add_message (notmuch_database_t *notmuch, g_ptr_array_free (thread_ids, TRUE); - date = notmuch_message_file_get_header (message, "date"); + date = notmuch_message_file_get_header (message_file, "date"); time_value = notmuch_parse_date (date, NULL); doc.add_value (NOTMUCH_VALUE_DATE, Xapian::sortable_serialise (time_value)); - from = notmuch_message_file_get_header (message, "from"); - subject = notmuch_message_file_get_header (message, "subject"); - to = notmuch_message_file_get_header (message, "to"); + from = notmuch_message_file_get_header (message_file, "from"); + subject = notmuch_message_file_get_header (message_file, "subject"); + to = notmuch_message_file_get_header (message_file, "to"); if (from == NULL && subject == NULL && @@ -616,8 +585,8 @@ notmuch_database_add_message (notmuch_database_t *notmuch, } DONE: - if (message) - notmuch_message_file_close (message); + if (message_file) + notmuch_message_file_close (message_file); return ret; }