Selaa lähdekoodia

Add comparision function for shingles.

tags/0.8.0
Vsevolod Stakhov 9 vuotta sitten
vanhempi
commit
c63bee1078
2 muutettua tiedostoa jossa 25 lisäystä ja 0 poistoa
  1. 15
    0
      src/libutil/shingles.c
  2. 10
    0
      src/libutil/shingles.h

+ 15
- 0
src/libutil/shingles.c Näytä tiedosto

@@ -135,3 +135,18 @@ rspamd_shingles_default_filter (guint64 *input, gsize count,

return minimal;
}


gdouble rspamd_shingles_compare (const struct rspamd_shingle *a,
const struct rspamd_shingle *b)
{
gint i, common = 0;

for (i = 0; i < RSPAMD_SHINGLE_SIZE; i ++) {
if (a->hashes[i] == b->hashes[i]) {
common ++;
}
}

return (gdouble)common / 84.0;
}

+ 10
- 0
src/libutil/shingles.h Näytä tiedosto

@@ -57,6 +57,16 @@ struct rspamd_shingle* rspamd_shingles_generate (GArray *input,
rspamd_shingles_filter filter,
gpointer filterd);

/**
* Compares two shingles and return result as a floating point value - 1.0
* for completely similar shingles and 0.0 for completely different ones
* @param a
* @param b
* @return
*/
gdouble rspamd_shingles_compare (const struct rspamd_shingle *a,
const struct rspamd_shingle *b);

/**
* Default filtering function
*/

Loading…
Peruuta
Tallenna