aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-05-09 15:45:43 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-05-09 15:45:43 +0100
commit4ef507e1592efbe33ca948f6bc76e4f100921184 (patch)
tree854ebe02911ddc48a76d54624c7b892ba3ccb2c9 /src
parent6a48a0a416a64c30c8ab89b9f468b523f46b1bb9 (diff)
downloadrspamd-4ef507e1592efbe33ca948f6bc76e4f100921184.tar.gz
rspamd-4ef507e1592efbe33ca948f6bc76e4f100921184.zip
[Feature] Add utility method to convert ftok to C string
Diffstat (limited to 'src')
-rw-r--r--src/libutil/fstring.c16
-rw-r--r--src/libutil/fstring.h8
2 files changed, 24 insertions, 0 deletions
diff --git a/src/libutil/fstring.c b/src/libutil/fstring.c
index 997dd6b46..285940f9c 100644
--- a/src/libutil/fstring.c
+++ b/src/libutil/fstring.c
@@ -400,3 +400,19 @@ rspamd_ftok_cstr_equal (const rspamd_ftok_t *s, const gchar *pat,
return (rspamd_ftok_cmp (s, &srch) == 0);
}
+
+gchar *
+rspamd_ftokdup (const rspamd_ftok_t *src)
+{
+ gchar *newstr;
+
+ if (src == NULL) {
+ return NULL;
+ }
+
+ newstr = g_malloc (src->len + 1);
+ memcpy (newstr, src->begin, src->len);
+ newstr[src->len] = '\0';
+
+ return newstr;
+}
diff --git a/src/libutil/fstring.h b/src/libutil/fstring.h
index 127557e40..10916d876 100644
--- a/src/libutil/fstring.h
+++ b/src/libutil/fstring.h
@@ -153,4 +153,12 @@ rspamd_ftok_t *rspamd_ftok_map (const rspamd_fstring_t *s);
rspamd_fstring_t * rspamd_fstring_grow (rspamd_fstring_t *str,
gsize needed_len) G_GNUC_WARN_UNUSED_RESULT;
+/**
+ * Copies ftok to zero terminated string (must be freed using g_free)
+ * @param src
+ * @return
+ */
+gchar *rspamd_ftokdup (const rspamd_ftok_t *src) G_GNUC_WARN_UNUSED_RESULT;
+
+
#endif