Mercurial > dovecot > core-2.2
view src/lib/unix-socket-create.c @ 6410:e4eb71ae8e96 HEAD
Changed .h ifdef/defines to use <NAME>_H format.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 16 Sep 2007 11:31:27 +0300 |
parents | 07a1726b7e6b |
children | 65c69a53a7be |
line wrap: on
line source
/* Copyright (c) 2005 Timo Sirainen */ #include "lib.h" #include "network.h" #include "unix-socket-create.h" #include <unistd.h> #include <sys/stat.h> int unix_socket_create(const char *path, int mode, uid_t uid, gid_t gid, int backlog) { mode_t old_umask; int fd; (void)unlink(path); old_umask = umask(0777 ^ mode); fd = net_listen_unix(path, backlog); umask(old_umask); if (fd < 0) { i_error("net_listen_unix(%s) failed: %m", path); return -1; } if (uid != (uid_t)-1 || gid != (gid_t)-1) { /* set correct permissions */ if (chown(path, uid, gid) < 0) { i_error("chown(%s, %s, %s) failed: %m", path, dec2str(uid), dec2str(gid)); return -1; } } return fd; }