summaryrefslogtreecommitdiff
path: root/rfc3195d.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2008-03-29 12:14:33 +0100
committerMichael Biebl <biebl@debian.org>2008-03-29 12:14:33 +0100
commitdb2b679ef6aa0ac3d4679ad3e00a72993204ea78 (patch)
tree0f95fbe227c3276e051ac79a921045c533b06dda /rfc3195d.c
parent2bff2e5d72345617f3b3e394ff28823067024f7a (diff)
downloadrsyslog-db2b679ef6aa0ac3d4679ad3e00a72993204ea78.tar.gz
Imported Upstream version 1.19.7upstream/1.19.7
Diffstat (limited to 'rfc3195d.c')
-rw-r--r--rfc3195d.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/rfc3195d.c b/rfc3195d.c
index ee7891b..b44550d 100644
--- a/rfc3195d.c
+++ b/rfc3195d.c
@@ -93,17 +93,20 @@ static void openlog()
strncpy(SyslogAddr.sa_data, pPathLogname,
sizeof(SyslogAddr.sa_data));
LogFile = socket(AF_UNIX, SOCK_DGRAM, 0);
- if(LogFile < 0)
+ if(LogFile < 0) {
+ char errStr[1024];
printf("error opening '%s': %s\n",
- pPathLogname, strerror(errno));
+ pPathLogname, strerror_r(errno, errStr, sizeof(errStr)));
+ }
}
if (LogFile != -1 && !connected &&
connect(LogFile, &SyslogAddr, sizeof(SyslogAddr.sa_family)+
strlen(SyslogAddr.sa_data)) != -1)
connected = 1;
- else
+ else {
printf("error connecting '%s': %s\n",
- pPathLogname, strerror(errno));
+ pPathLogname, strerror_r(errno, errStr, sizeof(errStr)));
+ }
}
@@ -157,7 +160,8 @@ void OnReceive(srAPIObj* pAPI, srSLMGObj* pSLMG)
nWritten = write(LogFile, pszRawMsg, strlen(pszRawMsg));
if(nWritten < 0) {
/* error, recover! */
- printf("error writing to domain socket: %s\r\n", strerror(errno));
+ char errStr[1024];
+ printf("error writing to domain socket: %s\r\n", strerror_r(errno, errStr, sizeof(errStr)));
closelog();
} else {
/* prepare for (potential) next write */
@@ -194,6 +198,7 @@ int main(int argc, char* argv[])
{
srRetVal iRet;
int ch;
+ struct sigaction sigAct;
while ((ch = getopt(argc, argv, "di:np:r:v")) != EOF)
switch((char)ch) {
@@ -231,10 +236,17 @@ int main(int argc, char* argv[])
if ((argc -= optind))
usage();
+ memset(&sigAct, 0, sizeof(sigAct));
+ sigemptyset(&sigAct.sa_mask);
+ sigAct.sa_handler = doShutdown;
+ sigaction(SIGUSR1, &sigAct, NULL);
+ sigaction(SIGTERM, &sigAct, NULL);
+
if(!Debug)
- signal(SIGINT, SIG_IGN);
- signal(SIGUSR1, doShutdown);
- signal(SIGTERM, doShutdown);
+ {
+ sigAct.sa_handler = SIG_IGN;
+ sigaction(SIGINT, &sigAct, NULL);
+ }
if((pAPI = srAPIInitLib()) == NULL)
{