Bläddra i källkod

Fix some border cases in control logic

tags/1.1.0
Vsevolod Stakhov 8 år sedan
förälder
incheckning
455dd6e0a7
2 ändrade filer med 10 tillägg och 2 borttagningar
  1. 2
    1
      src/fuzzy_storage.c
  2. 8
    1
      src/libserver/rspamd_control.c

+ 2
- 1
src/fuzzy_storage.c Visa fil

@@ -1089,7 +1089,8 @@ fuzzy_peer_rep (struct rspamd_worker *worker,
ctx->peer_fd = rep_fd;

if (rep_fd == -1) {
msg_warn ("cannot receive peer fd from the main process");
msg_err ("cannot receive peer fd from the main process");
exit (EXIT_FAILURE);
}

/* Start listening */

+ 8
- 1
src/libserver/rspamd_control.c Visa fil

@@ -543,10 +543,14 @@ rspamd_control_default_worker_handler (gint fd, short what, gpointer ud)

r = read (fd, &cmd, sizeof (cmd));

if (r != sizeof (cmd)) {
if (r == -1) {
msg_err ("cannot read request from the control socket: %s",
strerror (errno));
}
else if (r < (gint)sizeof (cmd)) {
msg_err ("short read of control command: %d of %d", (gint)r,
(gint)sizeof (cmd));
}
else if ((gint)cmd.type >= 0 && cmd.type < RSPAMD_CONTROL_MAX) {

if (cd->handlers[cmd.type].handler) {
@@ -557,6 +561,9 @@ rspamd_control_default_worker_handler (gint fd, short what, gpointer ud)
rspamd_control_default_cmd_handler (fd, cd, &cmd);
}
}
else {
msg_err ("unknown command: %d", (gint)cmd.type);
}
}

void

Laddar…
Avbryt
Spara