From a5b2977921dfdeee2cacdf4569dd662358775812 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sat, 8 May 2010 02:21:05 +0400 Subject: [PATCH] * Fix fuzzy storage interaction with old rspamd --- src/fuzzy_storage.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/fuzzy_storage.c b/src/fuzzy_storage.c index 3be999720..8957c9d35 100644 --- a/src/fuzzy_storage.c +++ b/src/fuzzy_storage.c @@ -668,6 +668,12 @@ accept_fuzzy_socket (int fd, short what, void *arg) struct rspamd_worker *worker = (struct rspamd_worker *)arg; struct fuzzy_session session; ssize_t r; + struct { + u_char cmd; + uint32_t blocksize; + int32_t value; + u_char hash[FUZZY_HASHLEN]; + } legacy_cmd; session.worker = worker; @@ -685,6 +691,16 @@ accept_fuzzy_socket (int fd, short what, void *arg) /* Assume that the whole command was read */ process_fuzzy_command (&session); } + else if (r == sizeof (legacy_cmd)) { + /* Process requests from old rspamd */ + memcpy (&legacy_cmd, session.pos, sizeof (legacy_cmd)); + session.cmd.cmd = legacy_cmd.cmd; + session.cmd.blocksize = legacy_cmd.blocksize; + session.cmd.value = legacy_cmd.value; + session.cmd.flag = 0; + memcpy (session.cmd.hash, legacy_cmd.hash, sizeof (legacy_cmd.hash)); + process_fuzzy_command (&session); + } else { msg_err ("got incomplete data while reading from socket: %d, %s", errno, strerror (errno)); return; -- 2.39.5