result.v1.flag = session->ctx->stat.fuzzy_hashes;
rspamd_fuzzy_make_reply(cmd, &result, session, send_flags);
}
+ else if (cmd->cmd == FUZZY_PING) {
+ /* Obtain milliseconds since midnight */
+ double now = rspamd_get_calendar_ticks();
+ double millis = now - (int64_t) now;
+ now = ((int64_t) now % 86400) + millis;
+
+ result.v1.prob = 1.0f;
+ result.v1.flag = now * 1000;
+ result.v1.value = result.v1.flag - cmd->value; /* This is transmitted time from our PoV */
+ rspamd_fuzzy_make_reply(cmd, &result, session, send_flags);
+ }
else {
if (rspamd_fuzzy_check_write(session)) {
/* Check whitelist */
+/*
+ * Copyright 2023 Vsevolod Stakhov
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
#ifndef RSPAMD_FUZZY_STORAGE_H
#define RSPAMD_FUZZY_STORAGE_H
#define FUZZY_WRITE 1
#define FUZZY_DEL 2
#define FUZZY_STAT 3
-#define FUZZY_CLIENT_MAX 3
+#define FUZZY_PING 4
+#define FUZZY_CLIENT_MAX 4
/* Internal commands */
#define FUZZY_REFRESH 100 /* Update expire */
#define FUZZY_DUP 101 /* Skip duplicate in update queue */