Commit Graph

178 Commits

Author SHA1 Message Date
imp
390c158d4c Per letter dated July 22, 1999 remove 3rd clause of Berkeley derived software
(with permission of addtional copyright holders where appropriate)
2004-08-07 04:28:56 +00:00
cperciva
0609fe923f Fix dofsync() declaration.
Pointed out by:	dwmalone
2004-07-04 19:52:48 +00:00
cperciva
9ceaed5e9f Where syslogd would have fsync()ed a file in the past, instead set a flag
FFLAG_NEEDSYNC and fsync the file when select() next returns zero.  This
dramatically speeds up the process of logging large amounts of data, while
leaving the essential semantics (that data can be expected to be on disk
if we crash) unchanged.

In my tests, this speeds up the rc phase of booting by 18-20%. [1]

YES PLEASE! by:	phk [1]
2004-07-04 19:13:58 +00:00
ru
560e5d06b5 Eliminated double whitespace. 2004-07-03 18:35:53 +00:00
ru
485e003d41 Mechanically kill hard sentence breaks. 2004-07-02 23:13:00 +00:00
dwmalone
7fa8e1e150 Also terminate program names if we hit a '/' - this is to be slightly
more friendly to postfix log messages.

PR:		50912
Submitted by:	Stanislav Lapshansky <slapsh@slapsh.pp.ru>
2004-05-30 10:34:58 +00:00
dwmalone
089930dfe1 A log file name may now be prefixed by a '-' if it should not be
explicitly fsynced after kernel messages are logged. This option
should be syntax compatible with a similar option in Linux syslogd.

I've made some small changes to Pekka's patch, hoepfully I haven't
goofed anything.

PR:		66790
Submitted by:	Pekka Savola <pekkas@netcore.fi>
Obtained from:	Martin Schulze's syslogd
MFC after:	1 month
2004-05-30 10:04:03 +00:00
dwmalone
1510dab747 Try to be more careful about using using the file descriptor f_file.
Syslogd should ensure that f_file is a valid file descriptor when
f_type is FILE, CONSOLE, TTY and for a PIPE where f_pid > 0. If the
descriptor is closed/invalid then the type should be set to UNUSED
or the pid should be set to 0.

To this end:
1) Don't close(f->f_file) if we can't send a message to a remote
   host because the file descriptor used for remote logging is
   stored in finet, not in f->f_file. f->f_file is probably
   uninitialised, so I guess we usually end up closing fd 0.
2) Don't close PIPE file descriptors if they are invalid.
3) If the call to p_open fails, don't set the pid.

The OpenBSD patches in this area set f_file to -1 after the fd is
closed and then avoids calling close if f_file < 0. I haven't done
this, but it might be a good idea too.

Inspired by:	PR 67139/OpenBSD
2004-05-30 00:02:19 +00:00
dwmalone
945a952b54 Some string fixes.
1) Use strncpy on strings out of utmp.
2) Avoid running off the start of one string while removing white space.
   (I've used slightly different code to OpenBSD here.)
3) Ignore trailing spaces in the priority.

PR:		67139
Submitted by:	Xin LI <delphij@FreeBSD.org.cn>
Obtained from:	OpenBSD
2004-05-29 23:40:30 +00:00
dwmalone
4deb8f1449 Exit with a warning if the path to one of the logging sockets is
too long, rather than silently truncating them.

PR:		67139
Inspired by:	OpenBSD
2004-05-29 23:27:50 +00:00
dwmalone
3e85e78d9a Fix some bugs that don't manifest themselves in practice.
1) Don't check for getopt returning '?', we have a default case.
2) Check if the priority is LOG_KERN correctly - in practice
   LOG_KERN is 0, so it makes no difference. OpenBSD fixed a
   different nearby bug that we don't have 'cos our definition
   of LOG_MAKEPRI is different to OpenBSD's.

Copy a comment from OpenBSD, observing that LOG_KERN is 0.

Inspired by PR:		67139
2004-05-29 23:24:18 +00:00
dwmalone
0d7aef40cb Update a couple of comments.
PR:		67139
Submitted by:	Xin LI <[3]delphij@FreeBSD.org.cn>
Obtained from:	OpenBSD
2004-05-29 23:14:03 +00:00
dwmalone
08c282f0a9 Silence some constness and printf type warnings. Most of the
const fixes are ugly 'cos the types in an iovec aren't quite
right for a writev.
2004-05-26 21:14:13 +00:00
ru
4c72afa60b Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
iedowse
da9ecb5cb2 Use strtol to parse the <%d> tags in printline() and printsys().
Sort local variables declarations in these functions.

Submitted by:	bde
2004-01-31 17:44:27 +00:00
iedowse
2fed042896 Be much more strict about parsing tagged log messages from /dev/klog;
if the line doesn't match ^<%d>, then treat it as a regular kernel
printf line. Previously if a kernel printf message started with "<"
it would be interpreted as a log message, often with LOG_EMERG
level. This was triggered by some printfs in sys/dev/aic7xxx/, and
can also happen with the partial lines that result if syslogd cannot
keep up with the rate of arrival of kernel messages.

Reviewed by:	dwmalone
MFC after:	1 week
2004-01-26 00:46:46 +00:00
dwmalone
2cbbec5360 logerror is used in syslogd to log errors from syslogd itself. It
is possible for an error to occur while trying to log an error, and
this can result in infinite recursion (or at least until we run out
of stack).

Rather than this, we ignore requests to log an error while logging an
error.

PR:		51253
MFC after:	2 weeks
2003-11-16 21:51:06 +00:00
dwmalone
2e0bfe8f0e Remove an argument to printf that is unused. 2003-11-16 21:42:00 +00:00
ru
b8e742a388 mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
gshapiro
3034f2da9d Avoid a corrupt timestamp on the console
PR:		51587
Submitted by:	Dmitry Sivachenko <mitya@cavia.pp.ru>
Approved by:	re (rwatson)
MFC after:	3 days
2003-05-17 20:07:54 +00:00
gshapiro
390463210d Avoid code duplication by using libutil's trimdomain() instead of
an incorrect re-implementation.

PR:		52223, 52342
Submitted by:	Dan Nelson <dnelson@allantgroup.com>
Approved by:	re (bmah/rwatson)
MFC after:	2 days
2003-05-17 20:05:18 +00:00
gshapiro
86b71bcd03 Cleanup hostname matching in syslogd:
1. Hostnames were not treated case insensitively in all cases.

2. The method for stripping hostnames when reading the syslog.conf
   differed from that when finding the hostname of an incoming request.
   This lead to a broken match check.  In my case, it meant I had to
   have '@scooter.smi.example.com.example.com' to have 'logger.example.com'
   properly save messages from 'scooter.smi.sendmail.com'.

3. Add paranoia to cfline() such that it doesn't try to access memory
   outside of the bounds of the f_host string.

4. While I am here, get rid of an outdated comment, argv[{0,1,2}] are now
   checked for NULL after the strdup() calls.

Reviewed by:	dwmalone
MFC after:	1 week
2003-05-04 22:05:40 +00:00
obrien
6709fe0c57 style.Makefile(5) 2003-04-04 17:49:21 +00:00
thomas
7e4ccb3e18 Hostname specifications must allow commas in the value. They are
used to separate multiple host names.

Noted by:	Dan Nelson <dnelson@allantgroup.com>
Reviewed by:	roberto
2003-02-21 19:02:31 +00:00
thomas
3ff15c4a16 Allow multiple hosts or programs to be named in program
or host specifications, eg:

!foo,bar
*.* /var/log/only_foo_or_bar.log

!-foo,bar
*.* /var/log/all_except_foo_or_bar.log

Reviewed by:		roberto
Not objected to by:	arch@
2003-02-13 00:08:56 +00:00
trhodes
a88ae3c478 Various language tweaks.
PR:		45604
Submitted by:	Chris Pepper <pepper@rockefeller.edu>
2002-12-24 01:04:42 +00:00
ru
88d368906e Uniformly refer to a file system as "file system".
Approved by:	re
2002-12-12 17:26:04 +00:00
ru
4275cb0d51 mdoc(7) police: markup fixes.
Approved by:	re
2002-11-27 15:31:08 +00:00
thomas
7675c23724 Factor out the code that determines whether a message must be skipped
as a consequence of a host or program name specification into a common
function, skip_pmessage.

Reviewed by:	roberto
2002-11-07 19:53:29 +00:00
wollman
bde0d2481c Add used #include <limits.h>. 2002-10-27 17:46:53 +00:00
tjr
48493eabd9 Sync usage() with reality and sort it alphabetically.
PR:		42620
Submitted by:	Jeff Ito
MFC after:	1 month
2002-10-18 11:48:46 +00:00
tjr
1aae6f1df9 Add -c option to synopsis. Sort it alphabetically, too. 2002-10-18 11:42:21 +00:00
des
e0cd1a6fd7 Avoid referencing a removed (and freed) queue entry. This partially reverts
revision 1.101 (which did not introduce the bug but made it harder to fix)

PR:		misc/40363
Submitted by:	David Dunham <dwdunham@isilon.com>
MFC after:	2 weeks
2002-10-06 17:43:04 +00:00
dcs
025fad7000 Introduce to the !program specification a capability similar to the one
that already exists for hosts: being able to specify a section that applies
to every program *except* the one in question.

The normal syntax for program specification is still valid. For the new
capability, one uses:

!-program

Since there is no way to specify a program beginning with a dash in the old
syntax, as it would be interpreted as the case above, the following
alternative syntax to the original capability is provided:

!+program

This shouldn't introduce incompatibilities with any syslogd configuration
in production because -stable's syslogd does not support a dash anywhere in
the program specification.

MFC after:	2 weeks
2002-09-23 11:59:19 +00:00
dwmalone
6eed038d3c Make syslogd -u treat "*" as all levels by explictly setting pri_cmp
for it.

While I'm here, add a the ability to say "!level" in a way which
should be compatible with Linux's syslogd.

PR:		28935
No objections:	audit
MFC after:	2 weeks
2002-09-04 21:11:25 +00:00
cjc
84553dbc63 Don't give up on a remote log host when we get a EHOSTUNREACH or
EHOSTDOWN. These are often transient errors (when the remote host
reboots, temporary network problems, etc.), and we'd rather err on the
side of caution and keep trying send messages that never arrive than
just give up.

Note that this is not an implementation of the "back-off" methods
given in the PR. Those just seem too complicated. Why not just keep
trying each time? Trying and failing doesn't really consume
significantly more resources than if we were successful for each
message.

PR:		bin/31029
MFC after:	1 week
2002-08-25 06:05:25 +00:00
robert
622f917568 When parsing the program name from the incoming log message
from a client, accept all printable characters as being part
of the program name, except ':' and '[', because each is a
possible delimiter.
2002-07-25 15:45:41 +00:00
robert
e3143ba142 When reading a program name from the syslog configuration file,
do not stop copying it into a buffer when encountering a
non-alphanumerical character.  Only stop at unprintable characters.
This makes syslogd work correctly with executables like `interp.bin',
`httpd_old', etc.

PR:		misc/40941
MFC after:	1 week
2002-07-25 09:56:37 +00:00
ume
437f62d13a use IPV6_V6ONLY instead of non standard IPV6_BINDV6ONLY.
MFC after:	1 week
2002-07-22 15:22:53 +00:00
charnier
90baea60d8 The .Nm utility 2002-07-14 14:47:15 +00:00
trhodes
1e5fa500d3 Consistancy check: s/file system/filesystem/g 2002-05-16 02:28:39 +00:00
des
6f161db61f Remove spaces between (void) and function calls. Use TAILQ_FOREACH
instead of hand-rolled equivalent.  Add curly braces for symmetry
around else.
2002-03-24 06:02:10 +00:00
des
3f10f569f9 Parenthesize return values and pull an orphaned { back into the fold. 2002-03-24 05:52:04 +00:00
des
0a98d111f8 __FBSDID, ANSIfy function definitions, staticize functions and globals,
don't initialize globals to 0, some reindentation of declarations, some
comments added or reworded.
2002-03-24 05:48:37 +00:00
des
156336576c Un-__P(). 2002-03-24 05:24:04 +00:00
maxim
f2225234bf Remove unnecessary setjmp.h.
Reviewed by:	ru
Approved by:	ru
Obtained from:	OpenBSD
MFC after:	1 week
2002-02-13 08:49:29 +00:00
maxim
cfee51de83 Unlink all log sockets at startup.
PR:		misc/34839
Reviewed by:	ru
Approved by:	ru
Obtained from:	OpenBSD
MFC after:	2 weeks
2002-02-13 08:37:55 +00:00
ru
1e10da8a73 mdoc(7) police: add missing markup bit. 2002-01-10 15:16:58 +00:00
deischen
7365c1ec3f Initialze a stack variable with NULL to unbreak buildworld with -Wall.
I don't know about anyone else, but the compiler was always aborting
on this stupid warning, and has been doing so for weeks.
2002-01-09 17:36:53 +00:00
archie
e8d79bd4d7 Add a new flag '-c' to disable repeated line compression when the output
is a pipe to another program, or, if specified twice, in all cases.

PR:	bin/32420
2002-01-05 07:34:52 +00:00