]> source.dussan.org Git - rspamd.git/commitdiff
Use DB_HASH access method for bdb backend.
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Thu, 1 Mar 2012 12:45:38 +0000 (16:45 +0400)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Thu, 1 Mar 2012 12:45:38 +0000 (16:45 +0400)
Fix signed and unsigned comparasion while I'm here.

lib/client/librspamdclient.c
lib/kvstorage/libkvstorageclient.c
src/binlog.c
src/buffer.c
src/cfg_utils.c
src/html.c
src/kvstorage.c
src/kvstorage_bdb.c
src/kvstorage_file.c
src/url.c

index dad2a3388d0f87b86c8d012e5435ada7eca522b9..2488abd37de376f6c137a0aebcc53d849a197828 100644 (file)
@@ -328,7 +328,7 @@ parse_rspamd_first_line (struct rspamd_connection *conn, guint len, GError **err
 
        p = b;
        c = p;
-       while (p - b < remain) {
+       while (p - b < (gint)remain) {
                switch (state) {
                case 0:
                        /* Read version */
@@ -359,7 +359,7 @@ parse_rspamd_first_line (struct rspamd_connection *conn, guint len, GError **err
                        break;
                case 2:
                        /* Read message */
-                       if (g_ascii_isspace (*p) || p - b == remain - 1) {
+                       if (g_ascii_isspace (*p) || p - b == (gint)remain - 1) {
                                state = 99;
                                next_state = 3;
                        }
@@ -411,7 +411,7 @@ parse_rspamd_metric_line (struct rspamd_connection *conn, guint len, GError **er
        }
        c = p;
 
-       while (p - b < remain) {
+       while (p - b < (gint)remain) {
                switch (state) {
                case 0:
                        /* Read metric's name */
@@ -475,7 +475,7 @@ parse_rspamd_metric_line (struct rspamd_connection *conn, guint len, GError **er
                        break;
                case 4:
                        /* Read required score */
-                       if (g_ascii_isspace (*p) || p - b == remain - 1) {
+                       if (g_ascii_isspace (*p) || p - b == (gint)remain - 1) {
                                new->required_score = strtod (c, &err_str);
                                if (*err_str != *p && *err_str != *(p + 1)) {
                                        /* Invalid score */
@@ -499,7 +499,7 @@ parse_rspamd_metric_line (struct rspamd_connection *conn, guint len, GError **er
                        break;
                case 6:
                        /* Read reject score */
-                       if (g_ascii_isspace (*p) || p - b == remain - 1) {
+                       if (g_ascii_isspace (*p) || p - b == (gint)remain - 1) {
                                new->reject_score = strtod (c, &err_str);
                                if (*err_str != *p && *err_str != *(p + 1)) {
                                        /* Invalid score */
@@ -551,17 +551,17 @@ parse_rspamd_symbol_line (struct rspamd_connection *conn, guint len, GError **er
                p ++;
        }
        c = p;
-       while (p - b < remain) {
+       while (p - b < (gint)remain) {
                switch (state) {
                case 0:
                        /* Read symbol's name */
-                       if (p - b == remain - 1 || *p == ';' || *p == '(') {
+                       if (p - b == (gint)remain - 1 || *p == ';' || *p == '(') {
                                if (p - c <= 1) {
                                        /* Empty symbol name */
                                        goto err;
                                }
                                else {
-                                       if (p - b == remain - 1) {
+                                       if (p - b == (gint)remain - 1) {
                                                l = p - c + 1;
                                        }
                                        else {
@@ -614,7 +614,7 @@ parse_rspamd_symbol_line (struct rspamd_connection *conn, guint len, GError **er
                        break;
                case 2:
                        /* Read description */
-                       if (*p == ';' || p - b == remain - 1) {
+                       if (*p == ';' || p - b == (gint)remain - 1) {
                                if (*p == ';') {
                                        l = p - c;
                                }
@@ -635,10 +635,10 @@ parse_rspamd_symbol_line (struct rspamd_connection *conn, guint len, GError **er
                        break;
                case 3:
                        /* Read option */
-                       if (*p == ',' || p - b == remain - 1) {
+                       if (*p == ',' || p - b == (gint)remain - 1) {
                                /* Insert option into linked list */
                                l = p - c;
-                               if (p - b == remain - 1) {
+                               if (p - b == (gint)remain - 1) {
                                        l ++;
                                }
                                sym = g_malloc (l + 1);
@@ -688,7 +688,7 @@ parse_rspamd_action_line (struct rspamd_connection *conn, guint len, GError **er
 
        p = b;
        c = b;
-       while (p - b < remain) {
+       while (p - b < (gint)remain) {
                switch (state) {
                case 0:
                        /* Read action */
@@ -701,7 +701,7 @@ parse_rspamd_action_line (struct rspamd_connection *conn, guint len, GError **er
                        }
                        break;
                case 1:
-                       if (p - b == remain - 1) {
+                       if (p - b == (gint)remain - 1) {
                                if (p - c <= 1) {
                                        /* Empty action name */
                                        goto err;
@@ -756,7 +756,7 @@ parse_rspamd_header_line (struct rspamd_connection *conn, guint len, GError **er
 
        p = b;
        c = b;
-       while (p - b < remain) {
+       while (p - b < (gint)remain) {
                switch (state) {
                case 0:
                        /* Read header name */
@@ -777,7 +777,7 @@ parse_rspamd_header_line (struct rspamd_connection *conn, guint len, GError **er
                        p ++;
                        break;
                case 1:
-                       if (p - b == remain - 1) {
+                       if (p - b == (gint)remain - 1) {
                                if (p - c <= 1) {
                                        /* Empty action name */
                                        goto err;
index d05e8b5e05ebb1139ca8c2ad5b13ecc533f0eae9..10e9be8a469309db55ee521dc93017eb5acfa5d0 100644 (file)
@@ -182,10 +182,10 @@ rspamd_kvstorage_buf_drainline (struct kvstorage_buf *buf)
 
        p = buf->data + buf->pos;
        /* Skip \r and \n characters */
-       while (p - buf->data < buf->len && (*p == '\r' || *p == '\n')) {
+       while (p - buf->data < (gint)buf->len && (*p == '\r' || *p == '\n')) {
                p ++;
        }
-       if (p - buf->data == buf->len) {
+       if (p - buf->data == (gint)buf->len) {
                /* Do not move anything */
                buf->pos = 0;
                return;
@@ -207,9 +207,9 @@ rspamd_kvstorage_parse_reply_error (struct kvstorage_buf *buf)
 
        /* Get one word */
        p = buf->data;
-       while (p - buf->data < buf->pos) {
+       while (p - buf->data < (gint)buf->pos) {
                if (g_ascii_isspace (*p)) {
-                       while (p - buf->data < buf->pos && g_ascii_isspace (*p)) {
+                       while (p - buf->data < (gint)buf->pos && g_ascii_isspace (*p)) {
                                p ++;
                        }
                        break;
@@ -262,7 +262,7 @@ rspamd_kvstorage_parse_get_line (struct kvstorage_buf *buf, guint *len, guint *f
        while (p < end) {
                if (g_ascii_isspace (*p)) {
                        error = FALSE;
-                       while (p - buf->data < buf->pos && g_ascii_isspace (*p)) {
+                       while (p - buf->data < (gint)buf->pos && g_ascii_isspace (*p)) {
                                p ++;
                        }
                        break;
@@ -302,7 +302,7 @@ rspamd_kvstorage_parse_get_line (struct kvstorage_buf *buf, guint *len, guint *f
                if (g_ascii_isspace (*p)) {
                        error = FALSE;
                        /* Skip spaces after flags */
-                       while (p - buf->data < buf->pos && g_ascii_isspace (*p)) {
+                       while (p - buf->data < (gint)buf->pos && g_ascii_isspace (*p)) {
                                p ++;
                        }
                        break;
index f87a81b0094137383e6098be51d95b62c6d9e9a0..47070b3af9d3bc5a6f1843ccff35fa1f3e78b410 100644 (file)
@@ -483,7 +483,7 @@ binlog_sync (struct rspamd_binlog *log, guint64 from_rev, guint64 *from_time, GB
        }
        
        (*rep)->data = g_malloc (idx->len);
-       if ((read (log->fd, (*rep)->data, idx->len)) != idx->len) {
+       if ((read (log->fd, (*rep)->data, idx->len)) != (ssize_t)idx->len) {
                msg_warn ("cannot read file %s, error %d, %s", log->filename, errno, strerror (errno));
                res = FALSE;
                goto end;
index 5c7cae197f46935d263d0f969912275d2f6d0795..d5bf673ddc515057177d9623eadbc857459c16e5 100644 (file)
@@ -224,7 +224,7 @@ write_buffers (gint fd, rspamd_io_dispatcher_t * d, gboolean is_delayed)
                        while (cur) {
                                buf = cur->data;
                                blen = BUFREMAIN (buf);
-                               if (r >= blen) {
+                               if (r >= (ssize_t)blen) {
                                        tmp = cur;
                                        cur = g_list_previous (cur);
                                        /* Mark this buffer as read */
index f7d1b7ecf96c16bc55c480eb7b23582c51040e6b..f91882f98e8ccb065c01fc9bea8782baf17ab9c9 100644 (file)
@@ -294,7 +294,7 @@ parse_limit (const gchar *limit, guint len)
                else if (*err_str == 'g' || *err_str == 'G') {
                        result *= 1073741824L;
                }
-               else if (len > 0 && err_str - limit != len) {
+               else if (len > 0 && err_str - limit != (gint)len) {
                        msg_warn ("invalid limit value '%s' at position '%s'", limit, err_str);
                        result = 0;
                }
index 04dfdfa89c3e65a922625c37a1a0e952c61c00d4..dac09bf0eca0555d82fd2525349208885581ba5c 100644 (file)
@@ -578,7 +578,7 @@ decode_entitles (gchar *s, guint * len)
                l = *len;
        }
 
-       while (h - s < l) {
+       while (h - s < (gint)l) {
                switch (state) {
                        /* Out of entitle */
                case 0:
index f02f6a568b4bfb643e26ea32a903521a2bed5f4c..37d2022d91471d41a94cbf7998da4c716e36b19e 100644 (file)
@@ -403,7 +403,7 @@ rspamd_kv_storage_lookup (struct rspamd_kv_storage *storage, gpointer key, guint
 
        if (elt && (elt->flags & KV_ELT_PERSISTENT) == 0 && elt->expire > 0) {
                /* Check expiration */
-               if (now - elt->age > elt->expire) {
+               if (now - elt->age > (gint)elt->expire) {
                        /* Set need expire as we have no write lock here */
                        elt->flags |= KV_ELT_NEED_EXPIRE;
                        elt = NULL;
@@ -639,7 +639,7 @@ rspamd_lru_expire_step (struct rspamd_kv_expire *e, struct rspamd_kv_storage *st
                        /* Check other elements in this queue */
                        TAILQ_FOREACH_SAFE (elt, &expire->head, entry, temp) {
                                if ((!forced &&
-                                       (elt->flags & (KV_ELT_PERSISTENT|KV_ELT_DIRTY)) != 0) || elt->expire < (now - elt->age)) {
+                                       (elt->flags & (KV_ELT_PERSISTENT|KV_ELT_DIRTY)) != 0) || (gint)elt->expire < (now - elt->age)) {
                                        break;
                                }
                                storage->memory -= ELT_SIZE (elt);
index 99203285abebb0426e737a2ebe71bb7aabc21204..7970291f6150aa3f55b679f663573db93e30e312 100644 (file)
@@ -157,13 +157,18 @@ rspamd_bdb_init (struct rspamd_kv_backend *backend)
         */
        db->envp->set_lk_detect (db->envp, DB_LOCK_DEFAULT);
 
+       /*
+        * Avoid explicit sync on committing
+        */
+       db->envp->set_flags (db->envp, DB_TXN_NOSYNC, 1);
+
        flags = DB_CREATE | DB_THREAD;
        /* Create and open db pointer */
        if ((ret = db_create (&db->dbp, db->envp, 0)) != 0) {
                goto err;
        }
 
-       if ((ret = db->dbp->open (db->dbp, NULL, db->filename, NULL, DB_BTREE, flags, 0)) != 0) {
+       if ((ret = db->dbp->open (db->dbp, NULL, db->filename, NULL, DB_HASH, flags, 0)) != 0) {
                goto err;
        }
 
index de06f778b0c0cc195d6a4a7c90e5577f948095ec..2857e680b636662577753d04391e57f6bb287903 100644 (file)
@@ -89,7 +89,7 @@ get_file_name (struct rspamd_file_backend *db, gchar *key, guint keylen, gchar *
        }
        /* Now we have directory, append base64 encoded filename */
        k = key;
-       if (end - p < keylen * 2 + 1) {
+       if (end - p < (gint)keylen * 2 + 1) {
                /* Filebuf is not large enough */
                return FALSE;
        }
index ade68ea1c630949d34f4359c17becdfe6c021c47..4936d9353490f52da45a3b1b72ffe13bcacb40bd 100644 (file)
--- a/src/url.c
+++ b/src/url.c
@@ -818,7 +818,7 @@ parse_uri (struct uri *uri, gchar *uristring, memory_pool_t * pool)
                        return URI_ERRNO_NO_PORT_COLON;
 
                /* We only use 8 bits for portlen so better check */
-               if (uri->portlen != port_end - host_end)
+               if ((gint)uri->portlen != port_end - host_end)
                        return URI_ERRNO_INVALID_PORT;
 
                /* test if port is number */