From 980d8b7d6b4369491bd99df633a8ad88100e9986 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Wed, 10 Jun 2020 13:02:59 +0100 Subject: [PATCH] [Minor] Explicitly specify af for socketpair --- src/libserver/rspamd_control.c | 2 +- src/libserver/worker_util.c | 4 ++-- src/libutil/util.c | 14 ++++++-------- src/libutil/util.h | 2 +- src/lua/lua_worker.c | 2 +- 5 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/libserver/rspamd_control.c b/src/libserver/rspamd_control.c index 2670263f3..f1de1d29c 100644 --- a/src/libserver/rspamd_control.c +++ b/src/libserver/rspamd_control.c @@ -914,7 +914,7 @@ rspamd_srv_handler (EV_P_ ev_io *w, int revents) if (spair == NULL) { spair = g_malloc (sizeof (gint) * 2); - if (rspamd_socketpair (spair, 0) == -1) { + if (rspamd_socketpair (spair, cmd.cmd.spair.af) == -1) { rdata->rep.reply.spair.code = errno; msg_err ("cannot create socket pair: %s", strerror (errno)); } diff --git a/src/libserver/worker_util.c b/src/libserver/worker_util.c index 1c7069521..4c82cb330 100644 --- a/src/libserver/worker_util.c +++ b/src/libserver/worker_util.c @@ -1136,12 +1136,12 @@ rspamd_fork_worker (struct rspamd_main *rspamd_main, /* Starting worker process */ wrk = (struct rspamd_worker *) g_malloc0 (sizeof (struct rspamd_worker)); - if (!rspamd_socketpair (wrk->control_pipe, 0)) { + if (!rspamd_socketpair (wrk->control_pipe, SOCK_DGRAM)) { msg_err ("socketpair failure: %s", strerror (errno)); rspamd_hard_terminate (rspamd_main); } - if (!rspamd_socketpair (wrk->srv_pipe, 0)) { + if (!rspamd_socketpair (wrk->srv_pipe, SOCK_DGRAM)) { msg_err ("socketpair failure: %s", strerror (errno)); rspamd_hard_terminate (rspamd_main); } diff --git a/src/libutil/util.c b/src/libutil/util.c index 3dc1adea1..60328df32 100644 --- a/src/libutil/util.c +++ b/src/libutil/util.c @@ -442,23 +442,21 @@ rspamd_socket (const gchar *credits, guint16 port, } gboolean -rspamd_socketpair (gint pair[2], gboolean is_stream) +rspamd_socketpair (gint pair[2], gint af) { - gint r, serrno; + gint r = -1, serrno; - if (!is_stream) { #ifdef HAVE_SOCK_SEQPACKET + if (af == SOCK_SEQPACKET) { r = socketpair (AF_LOCAL, SOCK_SEQPACKET, 0, pair); if (r == -1) { r = socketpair (AF_LOCAL, SOCK_DGRAM, 0, pair); } -#else - r = socketpair (AF_LOCAL, SOCK_DGRAM, 0, pair); -#endif } - else { - r = socketpair (AF_LOCAL, SOCK_STREAM, 0, pair); +#endif + if (r == -1) { + r = socketpair (AF_LOCAL, af, 0, pair); } if (r == -1) { diff --git a/src/libutil/util.h b/src/libutil/util.h index 367e280f1..c1c29ab30 100644 --- a/src/libutil/util.h +++ b/src/libutil/util.h @@ -66,7 +66,7 @@ gint rspamd_socket (const gchar *credits, guint16 port, gint type, /* * Create socketpair */ -gboolean rspamd_socketpair (gint pair[2], gboolean is_stream); +gboolean rspamd_socketpair (gint pair[2], gint af); /* * Make specified socket non-blocking diff --git a/src/lua/lua_worker.c b/src/lua/lua_worker.c index badc50a72..c11e49f2e 100644 --- a/src/lua/lua_worker.c +++ b/src/lua/lua_worker.c @@ -786,7 +786,7 @@ lua_worker_spawn_process (lua_State *L) cbdata->out_pos = 0; } - if (rspamd_socketpair (cbdata->sp, TRUE) == -1) { + if (rspamd_socketpair (cbdata->sp, SOCK_STREAM) == -1) { msg_err ("cannot spawn socketpair: %s", strerror (errno)); luaL_unref (L, LUA_REGISTRYINDEX, cbdata->func_cbref); luaL_unref (L, LUA_REGISTRYINDEX, cbdata->cb_cbref); -- 2.39.5