From: Vsevolod Stakhov Date: Mon, 26 Jan 2015 21:12:30 +0000 (+0000) Subject: Create fuzzy db if it does not exist. X-Git-Tag: 0.9.0~827 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=859c38cf85626f771d437a8da1004fd66aec55d7;p=rspamd.git Create fuzzy db if it does not exist. --- diff --git a/src/libserver/fuzzy_backend.c b/src/libserver/fuzzy_backend.c index c513ad06f..df35e0ccf 100644 --- a/src/libserver/fuzzy_backend.c +++ b/src/libserver/fuzzy_backend.c @@ -498,25 +498,30 @@ rspamd_fuzzy_backend_open (const gchar *path, GError **err) } g_free (dir); + if ((fd = open (path, O_RDONLY)) == -1) { - g_set_error (err, rspamd_fuzzy_backend_quark (), - errno, "Cannot open file %s: %s", - path, strerror (errno)); + if (errno != ENOENT) { + g_set_error (err, rspamd_fuzzy_backend_quark (), + errno, "Cannot open file %s: %s", + path, strerror (errno)); - return NULL; + return NULL; + } } + else { - /* Check for legacy format */ - if ((r = read (fd, header, sizeof (header))) == sizeof (header)) { - if (memcmp (header, FUZZY_FILE_MAGIC, sizeof (header) - 1) == 0) { - msg_info ("Trying to convert old fuzzy database"); - if (!rspamd_fuzzy_backend_convert (path, fd, err)) { - close (fd); - return NULL; + /* Check for legacy format */ + if ((r = read (fd, header, sizeof (header))) == sizeof (header)) { + if (memcmp (header, FUZZY_FILE_MAGIC, sizeof (header) - 1) == 0) { + msg_info ("Trying to convert old fuzzy database"); + if (!rspamd_fuzzy_backend_convert (path, fd, err)) { + close (fd); + return NULL; + } + msg_info ("Old database converted"); } - msg_info ("Old database converted"); + close (fd); } - close (fd); } /* Open database */