From: Lennart Poettering Date: Sun, 31 Mar 2013 18:19:44 +0000 (+0200) Subject: bus: reuse sd_is_socket() call X-Git-Tag: v201~108 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=9ab32f9daa9601250f183a694586712654be2ffe;hp=15d5af8145a36194385b4558eeeef91512f2151e;ds=sidebyside bus: reuse sd_is_socket() call --- diff --git a/Makefile.am b/Makefile.am index ef13ad20b..2a2a9fe2e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1689,7 +1689,8 @@ libsystemd_bus_la_SOURCES = \ libsystemd_bus_la_LIBADD = \ libsystemd-id128-internal.la \ - libsystemd-shared.la + libsystemd-shared.la \ + libsystemd-daemon.la noinst_LTLIBRARIES += \ libsystemd-bus.la diff --git a/src/libsystemd-bus/bus-socket.c b/src/libsystemd-bus/bus-socket.c index ce6af49b2..b9ef7c037 100644 --- a/src/libsystemd-bus/bus-socket.c +++ b/src/libsystemd-bus/bus-socket.c @@ -31,6 +31,7 @@ #include "missing.h" #include "strv.h" #include "utf8.h" +#include "sd-daemon.h" #include "sd-bus.h" #include "bus-socket.h" @@ -589,25 +590,17 @@ static int bus_socket_start_auth_client(sd_bus *b) { } static int bus_socket_start_auth(sd_bus *b) { - int domain = 0, r; - socklen_t sl; - assert(b); b->state = BUS_AUTHENTICATING; b->auth_timeout = now(CLOCK_MONOTONIC) + BUS_DEFAULT_TIMEOUT; - sl = sizeof(domain); - r = getsockopt(b->input_fd, SOL_SOCKET, SO_DOMAIN, &domain, &sl); - if (r < 0 || domain != AF_UNIX) + if (sd_is_socket(b->input_fd, AF_UNIX, 0, 0) <= 0) b->negotiate_fds = false; - if (b->output_fd != b->input_fd) { - r = getsockopt(b->output_fd, SOL_SOCKET, SO_DOMAIN, &domain, &sl); - if (r < 0 || domain != AF_UNIX) + if (b->output_fd != b->input_fd) + if (sd_is_socket(b->output_fd, AF_UNIX, 0, 0) <= 0) b->negotiate_fds = false; - } - if (b->is_server) return bus_socket_read_auth(b);