From 59b31c88179af4a9a9c9074a7b428841ce8661f8 Mon Sep 17 00:00:00 2001 From: Pierre Habouzit Date: Thu, 29 Nov 2007 11:17:45 +0100 Subject: [PATCH] Use even more magic. Signed-off-by: Pierre Habouzit --- common.c | 16 +++++++++------- common.h | 2 -- main-postlicyd.c | 1 - main-srsd.c | 2 -- 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/common.c b/common.c index 80746ae..7553779 100644 --- a/common.c +++ b/common.c @@ -206,7 +206,15 @@ int drop_privileges(const char *user, const char *group) extern initcall_t __madinit[], __madexit[]; -void common_initialize(void) +static void common_shutdown(void) +{ + for (int i = -1; __madexit[i]; i--) { + (*__madexit[i])(); + } +} + +static void __attribute__((__constructor__,__used__)) +common_initialize(void) { if (atexit(common_shutdown)) { fputs("Cannot hook my atexit function, quitting !\n", stderr); @@ -220,9 +228,3 @@ void common_initialize(void) } } -void common_shutdown(void) -{ - for (int i = -1; __madexit[i]; i--) { - (*__madexit[i])(); - } -} diff --git a/common.h b/common.h index 449ead5..801457c 100644 --- a/common.h +++ b/common.h @@ -72,8 +72,6 @@ extern sig_atomic_t sigint; extern sig_atomic_t sighup; void common_sighandler(int sig); -void common_initialize(void); -void common_shutdown(void); /* daemon.c */ int tcp_listen_nonblock(const struct sockaddr *addr, socklen_t len); diff --git a/main-postlicyd.c b/main-postlicyd.c index 70d9d69..01eb9e6 100644 --- a/main-postlicyd.c +++ b/main-postlicyd.c @@ -98,7 +98,6 @@ int main(int argc, char *argv[]) FILE *f = NULL; int res; - common_initialize(); for (int c = 0; (c = getopt(argc, argv, "h" "p:")) >= 0; ) { switch (c) { case 'p': diff --git a/main-srsd.c b/main-srsd.c index 57835cd..8d703af 100644 --- a/main-srsd.c +++ b/main-srsd.c @@ -373,8 +373,6 @@ int main(int argc, char *argv[]) int res; srs_t *srs; - common_initialize(); - for (int c = 0; (c = getopt(argc, argv, "hu" "e:d:p:")) >= 0; ) { switch (c) { case 'e': -- 2.20.1