Browse Source

Improve systemd support diagnostic.

tags/0.9.0
Vsevolod Stakhov 9 years ago
parent
commit
e6fd6b13d3
2 changed files with 7 additions and 0 deletions
  1. 2
    0
      src/libserver/cfg_utils.c
  2. 5
    0
      src/main.c

+ 2
- 0
src/libserver/cfg_utils.c View File

@@ -113,7 +113,9 @@ rspamd_parse_bind_line (struct rspamd_config *cfg,
cnf->is_systemd = TRUE;
cnf->cnt = strtoul (tokens[1], &err, 10);
cnf->addrs = NULL;

if (err == NULL || *err == '\0') {
cnf->name = rspamd_mempool_strdup (cfg->cfg_pool, str);
LL_PREPEND (cf->bind_conf, cnf);
}
else {

+ 5
- 0
src/main.c View File

@@ -615,9 +615,11 @@ systemd_get_socket (gint number)
if ((err == NULL || *err == '\0') && num_passed > number) {
sock = number + sd_listen_fds_start;
if (fstat (sock, &st) == -1) {
msg_warn ("cannot stat systemd descriptor %d", sock);
return NULL;
}
if (!S_ISSOCK (st.st_mode)) {
msg_warn ("systemd descriptor %d is not a socket", sock);
errno = EINVAL;
return NULL;
}
@@ -628,10 +630,13 @@ systemd_get_socket (gint number)
result = g_list_prepend (result, GINT_TO_POINTER (sock));
}
else if (num_passed <= number) {
msg_warn ("systemd LISTEN_FDS does not contain the expected fd: %d",
num_passed);
errno = EOVERFLOW;
}
}
else {
msg_warn ("cannot get systemd variable 'LISTEN_FDS'");
errno = ENOENT;
}


Loading…
Cancel
Save