]> source.dussan.org Git - rspamd.git/commitdiff
Add pool token dup utility.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 6 Oct 2015 15:02:32 +0000 (16:02 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 6 Oct 2015 15:02:32 +0000 (16:02 +0100)
src/libutil/mem_pool.c
src/libutil/mem_pool.h

index 6d8c37223c7333875f933e78026683f22756463b..849e70c0312e47e31a1fa9d5fdb3f3990d1db747 100644 (file)
@@ -26,8 +26,6 @@
 #include "mem_pool.h"
 #include "fstring.h"
 #include "logger.h"
-#include "util.h"
-#include "rspamd.h"
 #include "utlist.h"
 #include "ottery.h"
 
@@ -429,6 +427,20 @@ rspamd_mempool_fstrdup (rspamd_mempool_t * pool, const struct f_str_s *src)
        return newstr;
 }
 
+gchar *
+rspamd_mempool_ftokdup (rspamd_mempool_t *pool, const rspamd_ftok_t *src)
+{
+       gchar *newstr;
+
+       if (src == NULL) {
+               return NULL;
+       }
+
+       newstr = rspamd_mempool_alloc (pool, src->len + 1);
+       memcpy (newstr, src->begin, src->len);
+       newstr[src->len] = '\0';
+       return newstr;
+}
 
 gchar *
 rspamd_mempool_strdup_shared (rspamd_mempool_t * pool, const gchar *src)
index 3b0e976666ff4dc6e35703818f0e35d7aaede34a..21ddc9d90ea815549e3fa9344a186aab2fd889c2 100644 (file)
@@ -179,6 +179,17 @@ gchar * rspamd_mempool_strdup (rspamd_mempool_t * pool, const gchar *src);
 gchar * rspamd_mempool_fstrdup (rspamd_mempool_t * pool,
        const struct f_str_s *src);
 
+struct f_str_tok;
+
+/**
+ * Make a copy of fixed string token in pool as null terminated string
+ * @param pool memory pool object
+ * @param src source string
+ * @return pointer to newly created string that is copy of src
+ */
+gchar * rspamd_mempool_ftokdup (rspamd_mempool_t *pool,
+               const struct f_str_tok *src);
+
 /**
  * Allocate piece of shared memory
  * @param pool memory pool object
@@ -201,7 +212,7 @@ void rspamd_mempool_lock_shared (rspamd_mempool_t *pool, void *pointer);
  * @param pool memory pool object
  * @param pointer pointer of shared memory object that is to be unlocked (the whole page that contains that object is locked)
  */
-void rspamd_mempool_lock_shared (rspamd_mempool_t *pool, void *pointer);
+void rspamd_mempool_unlock_shared (rspamd_mempool_t *pool, void *pointer);
 
 /**
  * Add destructor callback to pool