]> source.dussan.org Git - rspamd.git/commitdiff
Improve systemd support diagnostic.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 11 Mar 2015 16:01:27 +0000 (16:01 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 11 Mar 2015 16:01:52 +0000 (16:01 +0000)
src/libserver/cfg_utils.c
src/main.c

index e28f6445ec3a8989c854d68e7574ffb4f7fbd9ab..28dadd4aeea229dae258e08966f658dd9fca2598 100644 (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 {
index a99c0a48be9888cca44ba0cb4073c056b68590e5..b6a133fe631d06914a2404c08abc737b56bb5366 100644 (file)
@@ -610,9 +610,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;
                        }
@@ -623,10 +625,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;
        }