X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udevsend.c;h=9f324077b3b92ee6d3e67f53363ff28566193099;hp=7db2378b83b16afc9bda5e8a91cd56b52a721924;hb=13f24d596c5638443ffc7bc48c10a66758335c74;hpb=c6478ec1e128f0a92c2123ed110a651b88d43569 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 */