Procházet zdrojové kódy

[Feature] Support ping command in fuzzy storage

tags/3.8.0
Vsevolod Stakhov před 6 měsíci
rodič
revize
1fbc13099e
Žádný účet není propojen s e-mailovou adresou tvůrce revize
2 změnil soubory, kde provedl 29 přidání a 1 odebrání
  1. 11
    0
      src/fuzzy_storage.c
  2. 18
    1
      src/libserver/fuzzy_wire.h

+ 11
- 0
src/fuzzy_storage.c Zobrazit soubor

@@ -1337,6 +1337,17 @@ rspamd_fuzzy_process_command(struct fuzzy_session *session)
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 */

+ 18
- 1
src/libserver/fuzzy_wire.h Zobrazit soubor

@@ -1,3 +1,19 @@
/*
* 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

@@ -21,7 +37,8 @@ extern "C" {
#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 */

Načítá se…
Zrušit
Uložit