summaryrefslogtreecommitdiffstats
path: root/src/main.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2009-03-03 14:31:51 +0300
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2009-03-03 14:31:51 +0300
commit5424cc32d47c5e98b9edfb2b342d9d98d97a1175 (patch)
treebd4a0d4418b71d0024f5d66d07de2cc24aded7ec /src/main.c
parent3ff032cf72164dc9aa8575c0a631f7c7b0079f46 (diff)
downloadrspamd-5424cc32d47c5e98b9edfb2b342d9d98d97a1175.tar.gz
rspamd-5424cc32d47c5e98b9edfb2b342d9d98d97a1175.zip
* Unify socket creation and accepting by using utility functions
* Check SO_ERROR on socket immideately after connect/bind to avoid resourses allocation for unsuccessful connections * Avoid descriptors leakage when we create sockets and have errors on them * Set on all socket descriptors FD_CLOEXEC flag to avoid problems with executing LDA
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/main.c b/src/main.c
index da142d6a7..1e9ba6788 100644
--- a/src/main.c
+++ b/src/main.c
@@ -354,14 +354,14 @@ main (int argc, char **argv, char **env)
sigprocmask(SIG_BLOCK, &signals.sa_mask, NULL);
if (rspamd->cfg->bind_family == AF_INET) {
- if ((listen_sock = make_socket (&rspamd->cfg->bind_addr, rspamd->cfg->bind_port)) == -1) {
+ if ((listen_sock = make_tcp_socket (&rspamd->cfg->bind_addr, rspamd->cfg->bind_port, TRUE)) == -1) {
msg_err ("main: cannot create tcp listen socket. %s", strerror (errno));
exit(-errno);
}
}
else {
un_addr = (struct sockaddr_un *) g_malloc (sizeof (struct sockaddr_un));
- if (!un_addr || (listen_sock = make_unix_socket (rspamd->cfg->bind_host, un_addr)) == -1) {
+ if (!un_addr || (listen_sock = make_unix_socket (rspamd->cfg->bind_host, un_addr, TRUE)) == -1) {
msg_err ("main: cannot create unix listen socket. %s", strerror (errno));
exit(-errno);
}