aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--libio/iovdprintf.c9
-rw-r--r--misc/syslog.c15
3 files changed, 22 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 010408a..f803ee2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+1998-03-10 Ulrich Drepper <drepper@cygnus.com>
+
+ * libio/iovdprintf.c (_IO_vdprintf): Set _IO_DELETE_DONT_CLOSE
+ flag.
+
+ * misc/syslog.c (vsyslog): Don't try to send if not connected to
+ syslog daemon.
+ (closelog_internal): Don't do anything if not connected.
+
1998-03-10 17:54 Ulrich Drepper <drepper@cygnus.com>
* libc.map: Add _dl_debug_message.
diff --git a/libio/iovdprintf.c b/libio/iovdprintf.c
index a24d3b5..d95af47 100644
--- a/libio/iovdprintf.c
+++ b/libio/iovdprintf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU IO Library.
This library is free software; you can redistribute it and/or
@@ -52,11 +52,10 @@ _IO_vdprintf (d, format, arg)
_IO_un_link (&tmpfil.file);
return EOF;
}
- tmpfil.file._flags &= ~_IO_DELETE_DONT_CLOSE;
-
tmpfil.file._IO_file_flags =
- _IO_mask_flags (&tmpfil.file, _IO_NO_READS,
- _IO_NO_READS+_IO_NO_WRITES+_IO_IS_APPENDING);
+ (_IO_mask_flags (&tmpfil.file, _IO_NO_READS,
+ _IO_NO_READS+_IO_NO_WRITES+_IO_IS_APPENDING)
+ | _IO_DELETE_DONT_CLOSE);
done = _IO_vfprintf (&tmpfil.file, format, arg);
diff --git a/misc/syslog.c b/misc/syslog.c
index 090926a..0aaabfa 100644
--- a/misc/syslog.c
+++ b/misc/syslog.c
@@ -201,7 +201,7 @@ vsyslog(pri, fmt, ap)
if (LogType == SOCK_STREAM)
++bufsize;
- if (__send(LogFile, buf, bufsize, 0) < 0)
+ if (!connected || __send(LogFile, buf, bufsize, 0) < 0)
{
closelog_internal (); /* attempt re-open next time */
/*
@@ -245,7 +245,7 @@ openlog_internal(const char *ident, int logstat, int logfac)
(void)strncpy(SyslogAddr.sa_data, _PATH_LOG,
sizeof(SyslogAddr.sa_data));
if (LogStat & LOG_NDELAY) {
- if ((LogFile = socket(AF_UNIX, LogType, 0))
+ if ((LogFile = __socket(AF_UNIX, LogType, 0))
== -1)
return;
(void)fcntl(LogFile, F_SETFD, 1);
@@ -292,15 +292,18 @@ openlog (const char *ident, int logstat, int logfac)
static void
sigpipe_handler (int signo)
{
- closelog_internal();
+ closelog_internal ();
}
static void
closelog_internal()
{
- (void)close(LogFile);
- LogFile = -1;
- connected = 0;
+ if (!connected)
+ return;
+
+ close (LogFile);
+ LogFile = -1;
+ connected = 0;
}
void