From: Vsevolod Stakhov Date: Thu, 7 Feb 2019 12:34:22 +0000 (+0000) Subject: [Minor] Add starts_with function for rspamd_ftok_t X-Git-Tag: 1.9.0~207 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d7aef55713b576997aec976326c1143d14fe3f8;p=thirdparty%2Frspamd.git [Minor] Add starts_with function for rspamd_ftok_t --- diff --git a/src/libutil/fstring.c b/src/libutil/fstring.c index 2cfbd7bf82..967de9e98d 100644 --- a/src/libutil/fstring.c +++ b/src/libutil/fstring.c @@ -375,6 +375,19 @@ rspamd_ftok_cmp (const rspamd_ftok_t *s1, return s1->len - s2->len; } +gboolean +rspamd_ftok_starts_with (const rspamd_ftok_t *s1, + const rspamd_ftok_t *s2) +{ + g_assert (s1 != NULL && s2 != NULL); + + if (s1->len >= s2->len) { + return !!(memcmp (s1->begin, s2->begin, s1->len) == 0); + } + + return FALSE; +} + void rspamd_fstring_mapped_ftok_free (gpointer p) { diff --git a/src/libutil/fstring.h b/src/libutil/fstring.h index 96749052ce..1a4d25eb96 100644 --- a/src/libutil/fstring.h +++ b/src/libutil/fstring.h @@ -139,6 +139,15 @@ gint rspamd_ftok_casecmp (const rspamd_ftok_t *s1, gint rspamd_ftok_cmp (const rspamd_ftok_t *s1, const rspamd_ftok_t *s2); +/** + * Returns true if `s1` starts with `s2` + * @param s1 + * @param s2 + * @return + */ +gboolean rspamd_ftok_starts_with (const rspamd_ftok_t *s1, + const rspamd_ftok_t *s2); + /** * Return TRUE if ftok is equal to specified C string */