+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.
-/* 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
_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);
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 */
/*
(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);
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