diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-03-23 22:13:39 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-03-23 22:13:39 +0000 |
commit | 7fcf40d88893e07a26cde8d266a18f0ac6b30ccd (patch) | |
tree | 5fa86fc2f146b7f108c847aabd6377cc0bd01deb | |
parent | 59d6fe4f5787005f48bfd9fe32d5b85e763312b4 (diff) | |
download | rspamd-7fcf40d88893e07a26cde8d266a18f0ac6b30ccd.tar.gz rspamd-7fcf40d88893e07a26cde8d266a18f0ac6b30ccd.zip |
Use port when calculating listen socket hash.
-rw-r--r-- | src/libutil/addr.c | 7 | ||||
-rw-r--r-- | src/libutil/addr.h | 4 | ||||
-rw-r--r-- | src/main.c | 7 |
3 files changed, 12 insertions, 6 deletions
diff --git a/src/libutil/addr.c b/src/libutil/addr.c index e115072b1..38e5ac4fa 100644 --- a/src/libutil/addr.c +++ b/src/libutil/addr.c @@ -960,10 +960,11 @@ rspamd_inet_address_compare (const rspamd_inet_addr_t *a1, } gint -rspamd_inet_address_compare_ptr (const gpointer a1, - const gpointer a2) +rspamd_inet_address_compare_ptr (gconstpointer a1, + gconstpointer a2) { - const rspamd_inet_addr_t **i1 = a1, **i2 = a2; + const rspamd_inet_addr_t **i1 = (const rspamd_inet_addr_t **)a1, + **i2 = (const rspamd_inet_addr_t **)a2; return rspamd_inet_address_compare (*i1, *i2); } diff --git a/src/libutil/addr.h b/src/libutil/addr.h index 1ea0ab8b5..a13c14b53 100644 --- a/src/libutil/addr.h +++ b/src/libutil/addr.h @@ -202,8 +202,8 @@ gint rspamd_inet_address_compare (const rspamd_inet_addr_t *a1, * @param a2 * @return */ -gint rspamd_inet_address_compare_ptr (const gpointer a1, - const gpointer a2); +gint rspamd_inet_address_compare_ptr (gconstpointer a1, + gconstpointer a2); /** * Performs deep copy of rspamd inet addr * @param addr diff --git a/src/main.c b/src/main.c index 373c01695..dfa2e6294 100644 --- a/src/main.c +++ b/src/main.c @@ -656,6 +656,8 @@ make_listen_key (struct rspamd_worker_bind_conf *cf) gpointer xxh; guint i, keylen; guint8 *key; + rspamd_inet_addr_t *addr; + guint16 port; xxh = XXH32_init (0xdeadbeef); if (cf->is_systemd) { @@ -665,9 +667,12 @@ make_listen_key (struct rspamd_worker_bind_conf *cf) else { XXH32_update (xxh, cf->name, strlen (cf->name)); for (i = 0; i < cf->cnt; i ++) { + addr = g_ptr_array_index (cf->addrs, i); key = rspamd_inet_address_get_radix_key ( - g_ptr_array_index (cf->addrs, i), &keylen); + addr, &keylen); XXH32_update (xxh, key, keylen); + port = rspamd_inet_address_get_port (addr); + XXH32_update (xxh, &port, sizeof (port)); } } |