From e7d01040692b5d7155038e68cca31217aa804129 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sun, 20 Apr 2014 22:42:58 +0200 Subject: m + listen on socket MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/mds.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/mds.c') diff --git a/src/mds.c b/src/mds.c index 639d0a3..d897ecc 100644 --- a/src/mds.c +++ b/src/mds.c @@ -29,6 +29,7 @@ #include #include #include +#include /** @@ -184,7 +185,7 @@ int main(int argc_, const char** argv_) snprintf(pathname, sizeof(pathname) / sizeof(char), "%s/%u.socket", MDS_RUNTIME_ROOT_DIRECTORY, display); address.sun_family = AF_UNIX; - strcpy(address.sun_path, path); + strcpy(address.sun_path, pathname); unlink(pathname); fd = socket(AF_UNIX, SOCK_STREAM, 0); if ((fchmod(fd, S_IRWXU) < 0) || @@ -201,6 +202,14 @@ int main(int argc_, const char** argv_) return 1; } + /* Start listening on socket. */ + if (listen(fd, SOMAXCONN) < 0) + { + perror(*argv); + close(fd); + return 1; + } + /* Drop privileges. They most not be propagated non-authorised components. */ /* setgid should not be set, but just to be safe we are restoring both user and group. */ if ((seteuid(getuid()) < 0) || (setegid(getgid()) < 0)) -- cgit v1.2.3-70-g09d2