X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udevsend.c;h=9f324077b3b92ee6d3e67f53363ff28566193099;hb=2092fbcdebf5313f29b43bdaa57a22baf0c0269f;hp=7db2378b83b16afc9bda5e8a91cd56b52a721924;hpb=4a231017ff6e9f66a685b0d1e4e49dc46645bb40;p=elogind.git diff --git a/udevsend.c b/udevsend.c index 7db2378b8..9f324077b 100644 --- a/udevsend.c +++ b/udevsend.c @@ -41,6 +41,9 @@ #include "udevd.h" #include "logging.h" +/* global variables */ +static int sock = -1; + #ifdef LOG unsigned char logname[LOGNAME_SIZE]; void log_message (int level, const char *format, ...) @@ -66,8 +69,7 @@ static int start_daemon(void) switch (child_pid) { case 0: /* daemon */ - setsid(); - chdir("/"); + close(sock); execl(UDEVD_BIN, "udevd", NULL); dbg("exec of daemon failed"); _exit(1); @@ -119,7 +121,6 @@ int main(int argc, char *argv[], char *envp[]) int subsystem_env = 0; int bufpos = 0; int retval = 1; - int sock = -1; int started_daemon = 0; logging_init("udevsend"); @@ -137,8 +138,6 @@ int main(int argc, char *argv[], char *envp[]) goto fallback; } - set_cloexec_flag(sock, 1); - memset(&saddr, 0x00, sizeof(struct sockaddr_un)); saddr.sun_family = AF_LOCAL; /* use abstract namespace for socket path */