diff options
author | kay.sievers@vrfy.org <kay.sievers@vrfy.org> | 2004-10-18 18:15:10 -0700 |
---|---|---|
committer | Greg KH <gregkh@suse.de> | 2005-04-26 22:02:45 -0700 |
commit | 7257cb18458e6b51cc9655887b7f9745f704b71f (patch) | |
tree | d7ddc0f12844e7ed866905a47ff806fcb4919c66 | |
parent | 0f634c33d7eb634737915dc1aa3b7d7342d1a5f2 (diff) |
[PATCH] close the syslog
Seems that we never closed the opened syslog.
Here is a patch to do this in all our binaries.
-rw-r--r-- | logging.h | 13 | ||||
-rw-r--r-- | udev.c | 3 | ||||
-rw-r--r-- | udevd.c | 5 | ||||
-rw-r--r-- | udevinfo.c | 12 | ||||
-rw-r--r-- | udevsend.c | 4 | ||||
-rw-r--r-- | wait_for_sysfs.c | 3 |
6 files changed, 26 insertions, 14 deletions
@@ -27,7 +27,8 @@ #define info(format, arg...) do { } while (0) #define dbg(format, arg...) do { } while (0) #define dbg_parse(format, arg...) do { } while (0) -#define init_logging(foo) do { } while (0) +#define logging_init(foo) do { } while (0) +#define logging_close(foo) do { } while (0) #ifdef LOG #include <stdarg.h> @@ -65,13 +66,19 @@ extern void log_message(int level, const char *format, ...) /* each program that uses syslog must declare this variable somewhere */ extern unsigned char logname[LOGNAME_SIZE]; -#undef init_logging -static inline void init_logging(char *program_name) +#undef logging_init +static inline void logging_init(char *program_name) { snprintf(logname, LOGNAME_SIZE,"%s[%d]", program_name, getpid()); openlog(logname, 0, LOG_DAEMON); } +#undef logging_close +static inline void logging_close(void) +{ + closelog(); +} + #endif /* LOG */ #endif @@ -122,7 +122,7 @@ int main(int argc, char *argv[], char *envp[]) main_argv = argv; main_envp = envp; - init_logging("udev"); + logging_init("udev"); udev_init_config(); @@ -203,5 +203,6 @@ int main(int argc, char *argv[], char *envp[]) udevdb_exit(); exit: + logging_close(); return retval; } @@ -150,7 +150,7 @@ static void udev_run(struct hotplug_msg *msg) /* child */ execle(udev_bin, "udev", msg->subsystem, NULL, env); dbg("exec of child failed"); - exit(1); + _exit(1); break; case -1: dbg("fork of child failed"); @@ -403,7 +403,7 @@ int main(int argc, char *argv[]) struct sigaction act; fd_set readfds; - init_logging("udevd"); + logging_init("udevd"); dbg("version %s", UDEV_VERSION); if (getuid() != 0) { @@ -549,5 +549,6 @@ int main(int argc, char *argv[]) } exit: close(ssock); + logging_close(); exit(1); } diff --git a/udevinfo.c b/udevinfo.c index 8329fe7d06..763cfd139f 100644 --- a/udevinfo.c +++ b/udevinfo.c @@ -447,18 +447,18 @@ help: int main(int argc, char *argv[], char *envp[]) { - int retval; + int rc = 0; main_argv = argv; main_argc = argc; - init_logging("udevinfo"); + logging_init("udevinfo"); /* initialize our configuration */ udev_init_config(); - retval = process_options(); - if (retval != 0) - exit(1); - exit(0); + rc = process_options(); + + logging_close(); + exit(rc); } diff --git a/udevsend.c b/udevsend.c index 23ba1a1b00..883181c1b6 100644 --- a/udevsend.c +++ b/udevsend.c @@ -123,7 +123,7 @@ int main(int argc, char* argv[]) socklen_t addrlen; int started_daemon = 0; - init_logging("udevsend"); + logging_init("udevsend"); dbg("version %s", UDEV_VERSION); subsystem = get_subsystem(argv[1]); @@ -215,5 +215,7 @@ exit: if (sock != -1) close(sock); + logging_close(); + return retval; } diff --git a/wait_for_sysfs.c b/wait_for_sysfs.c index 1d7044c61f..37de02261d 100644 --- a/wait_for_sysfs.c +++ b/wait_for_sysfs.c @@ -392,7 +392,7 @@ int main(int argc, char *argv[], char *envp[]) int rc = 0; const char *error = NULL; - init_logging("wait_for_sysfs"); + logging_init("wait_for_sysfs"); if (argc != 2) { dbg("error: subsystem"); @@ -475,5 +475,6 @@ exit: dbg("result: waiting for sysfs successful '%s'", devpath); } + logging_close(); exit(rc); } |