]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Explicitly specify af for socketpair
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 10 Jun 2020 12:02:59 +0000 (13:02 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 10 Jun 2020 12:02:59 +0000 (13:02 +0100)
src/libserver/rspamd_control.c
src/libserver/worker_util.c
src/libutil/util.c
src/libutil/util.h
src/lua/lua_worker.c

index 2670263f3110b51793218d134d81c8f6e2c6c4f4..f1de1d29ca76e8bbfa2523de8a4b1692e0c2bd26 100644 (file)
@@ -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));
                                        }
index 1c70695218d1a388022eab9e51aa3679fca23cfd..4c82cb3304cb2b426f53506816665e94b6a89eaa 100644 (file)
@@ -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);
        }
index 3dc1adea1511d77b70df6a1557c17b22599af3cd..60328df328866d9e7241df1f41f0ad75a5143fdd 100644 (file)
@@ -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) {
index 367e280f16fbe865624ba30f63b9d7977c6e18c2..c1c29ab30f2d3ef6c35de5b940a937a6f110d322 100644 (file)
@@ -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
index badc50a72c6083164cbdb34713a01f48b5fba1e4..c11e49f2e5b1aaaf0cdd876b3bfae2dd40254279 100644 (file)
@@ -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);