Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:11.4
syslogd
sysklogd-1.4.1-reload.dif
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File sysklogd-1.4.1-reload.dif of Package syslogd
--- syslogd.c +++ syslogd.c 2010-03-29 15:12:11.000000000 +0000 @@ -565,7 +565,7 @@ char **parts; int inetm = 0; static int debugging_on = 0; static int nlogs = -1; -static int restart = 0; +static volatile sig_atomic_t restart; #define MAXFUNIX 20 @@ -1096,6 +1096,7 @@ int main(argc, argv) dprintf("Starting.\n"); init(); + (void) signal(SIGHUP, sighup_handler); #ifndef TESTING if ( Debug ) { @@ -1167,9 +1168,22 @@ int main(argc, argv) (fd_set *) NULL, (struct timeval *) NULL); if ( restart ) { +#ifndef _BSD_SOURCE + int omask = sigblock(sigmask(SIGHUP)); +#else + sigset_t blockhup; + sigemptyset(&blockhup); + sigaddset (&blockhup, SIGHUP); + (void) sigprocmask(SIG_BLOCK, &blockhup, NULL); +#endif + restart = 0; dprintf("\nReceived SIGHUP, reloading syslogd.\n"); init(); - restart = 0; +#ifndef _BSD_SOURCE + (void) sigsetmask(omask); +#else + (void) sigprocmask (SIG_UNBLOCK, &blockhup, NULL); +#endif continue; } if (nfds == 0) { @@ -1676,17 +1690,23 @@ void logmsg(pri, msg, from, flags) register struct filed *f; int fac, prilev; int msglen; -#ifndef SYSV +#ifndef _BSD_SOURCE int omask; #else int lognum; + sigset_t nset, oset; #endif char *timestamp; dprintf("logmsg: %s, flags %x, from %s, msg %s\n", textpri(pri), flags, from, msg); -#ifndef SYSV +#ifndef _BSD_SOURCE omask = sigblock(sigmask(SIGHUP)|sigmask(SIGALRM)); +#else + sigemptyset(&nset); + sigaddset (&nset, SIGHUP); + sigaddset (&nset, SIGALRM); + (void)sigprocmask(SIG_BLOCK, &nset, &oset); #endif /* @@ -1724,8 +1744,10 @@ void logmsg(pri, msg, from, flags) (void) close(f->f_file); f->f_file = -1; } -#ifndef SYSV +#ifndef _BSD_SOURCE (void) sigsetmask(omask); +#else + (void)sigprocmask(SIG_SETMASK, &oset, NULL); #endif return; } @@ -1789,8 +1811,10 @@ void logmsg(pri, msg, from, flags) } } } -#ifndef SYSV +#ifndef _BSD_SOURCE (void) sigsetmask(omask); +#else + (void)sigprocmask(SIG_SETMASK, &oset, NULL); #endif } #if FALSE @@ -2108,7 +2132,7 @@ void wallmsg(f, iov) (void) signal(SIGTERM, SIG_DFL); (void) alarm(0); (void) signal(SIGALRM, endtty); -#ifndef SYSV +#ifndef _BSD_SOURCE (void) signal(SIGTTOU, SIG_IGN); (void) sigsetmask(0); #endif @@ -2178,14 +2202,14 @@ void wallmsg(f, iov) void reapchild() { int saved_errno = errno; -#if defined(SYSV) && !defined(linux) +#if defined(SYSV) && !defined(_BSD_SOURCE) (void) signal(SIGCHLD, reapchild); /* reset signal handler -ASP */ wait ((int *)0); #else while (waitpid(-1, (int*)0, WNOHANG|WUNTRACED) > 0) ; #endif -#ifdef linux +#ifndef _BSD_SOURCE (void) signal(SIGCHLD, reapchild); /* reset signal handler -ASP */ #endif errno = saved_errno; @@ -2318,7 +2342,9 @@ void debug_switch() { dprintf("Switching debugging_on to %s\n", (debugging_on == 0) ? "true" : "false"); debugging_on = (debugging_on == 0) ? 1 : 0; +#ifndef _BSD_SOURCE signal(SIGUSR1, debug_switch); +#endif } @@ -2350,7 +2376,9 @@ void die(int sig) (void) snprintf(buf, sizeof(buf), "exiting on signal %d", sig); errno = 0; logmsg(LOG_SYSLOG|LOG_INFO, buf, LocalHostName, ADDDATE); +#ifdef _BSD_SOURCE signal(sig, SIG_IGN); +#endif } void dienow(void) @@ -2664,7 +2692,6 @@ void init() logmsg(LOG_SYSLOG|LOG_INFO, "syslogd " VERSION "." PATCHLEVEL \ ": restart." , LocalHostName, ADDDATE); #endif - (void) signal(SIGHUP, sighup_handler); dprintf("syslogd: restarted.\n"); } #if FALSE @@ -3061,7 +3088,9 @@ void sighup_handler() { restart = 1; +#ifndef _BSD_SOURCE signal(SIGHUP, sighup_handler); +#endif return; }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor