Commit Graph

276 Commits

Author SHA1 Message Date
Eitan Adler
50d675f7a9 Remove trailing whitespace per mdoc lint warning
Disussed with:	gavin
No objection from:	doc
Approved by:	joel
MFC after:	3 days
2012-03-29 05:02:12 +00:00
Gleb Smirnoff
7f06c60810 Fix a sentence in a paragraph that describes time and interval based
trimming. This sentence vaguely can be interpreted as if it was speaking
about time and size interaction, while it wasn't about it.
2012-03-21 07:02:17 +00:00
Gleb Smirnoff
7be124b0a8 Don't run through time checks when entry is definitely oversized. This
leads to newsyslog rotating on (size OR time) if both are specified.

PR:		100018, 160432
2012-03-21 06:51:45 +00:00
Ulrich Spörlein
f7bcc1c411 Further fix a typo and spelling classic correctly in function names,
too.

Submitted by:	Ben Kaduk <minimarmot@gmail.com>
2012-01-05 21:36:36 +00:00
Ed Schouten
b3608ae18f Replace index() and rindex() calls with strchr() and strrchr().
The index() and rindex() functions were marked LEGACY in the 2001
revision of POSIX and were subsequently removed from the 2008 revision.
The strchr() and strrchr() functions are part of the C standard.

This makes the source code a lot more consistent, as most of these C
files also call into other str*() routines. In fact, about a dozen
already perform strchr() calls.
2012-01-03 18:51:58 +00:00
Ulrich Spörlein
3df5ecac8c Spelling fixes for usr.sbin/ 2011-12-30 10:58:14 +00:00
Eitan Adler
520374b5aa - Remove extraneous null ptr deref checks
- Fix memory leak

Submitted by:	Slono Slono <slonoman2011@yandex.ru>
Approved by:	jhb
MFC after:	1 week
2011-12-21 20:27:41 +00:00
Maxim Sobolev
ea640d778b Add new modifier - "R", when it is specified the path to pid file
will be considered as a path to a binary or a shell script to be executed
after rotation has been completed instead of sending signal to the process
id in that file.

Sponsored by:	Sippy Software, Inc.
From the:	FreeBSD hacking lounge at BSDCan
2011-05-14 03:00:55 +00:00
Simon L. B. Nielsen
449590b192 Fix an old bug in newsyslog where we kept one log file more than was
requested in newsyslog.conf.  This was only the case using the non-time
based filenames (.0, .1, .2 etc.).

The change also makes newsyslog clean clean up the old extra logfile so
users don't end up with a single stale logfile which won't be rotated
out.

This change also cleans up some code a bit to avoid more copy / paste
code and removes some old copy / paste code in the process.

PR:		bin/76697
MFC after:	2 weeks
2011-04-21 16:31:05 +00:00
Doug Barton
83baf4bacc Add an example for the use of the <include> entry to help others
who are as slow as I am.

Discussed with:	gordon
2011-03-26 00:34:35 +00:00
Ruslan Ermilov
b17e9548f8 Sync manpage's SYNOPSIS with program's usage. 2011-03-09 17:07:36 +00:00
Maxim Sobolev
8c6269ba81 Make code more friendly to the non-C99 compilers - don't allocate
local variables in the `for' loop declaration. This allows trunk
newsyslog.c to be compiled on 7.x. This change should be no-op from
the functional POV.
2011-02-22 09:11:47 +00:00
Martin Matuska
c61aa7e8b3 Use correct alphabetical order for xz(1) in SEE ALSO section
of newsyslog manpages.

Reported by:	maxim
MFC after:	3 weeks
2011-01-31 11:30:26 +00:00
Martin Matuska
d90914ca73 Add xz(1) support to newsyslog.
Rewrite and simplify logfile compression code.

Approved by:	gad
MFC after:	3 weeks
2011-01-31 10:57:54 +00:00
Brian Somers
2921193efd Make -S functional.
MFC after:	1 week
2010-12-31 01:10:42 +00:00
Simon L. B. Nielsen
c86bcbb3a7 Fix a typo in a comment.
MFC after:	3 days
2010-11-21 11:50:16 +00:00
Brian Somers
318a43da85 Add a -S switch to override the default syslog pid file. This can be useful
if syslogd's -P switch or a syslogd alternative is being used.

MFC after:	3 weeks
2010-07-23 09:11:47 +00:00
Simon L. B. Nielsen
872e964d07 Add support for creating the archived log filenames using a time-stamp
instead of the traditional simple counter.

Using the time-stamp based file-names, once a log file is archived, it
will not change name until it is deleted.  This means that many backup
systems will only perform one backup of the archived log file, instead
for performing a new backup of the logfile upon each logfile rotation.

This implementation is separate from the patches in the mentioned PR,
as I wasn't aware of the existence of the PR until after I had
implemented the same functionality as the patches in the PR provide.
Unlike the PR, this new code does honor the 'log count' in
newsyslog.conf so old logfiles are deleted.  This new code does not
currently support never deleting the archived logfiles.

PR:		bin/29363
MFC after:	3 weeks
2010-07-22 11:23:18 +00:00
Gordon Tetlow
82c00be8ee Add file include processing for newsyslog.
Format for the include line in /etc/newsyslog.conf is:
<include> /etc/defaults/newsyslog.conf

Other notes of interest:
Globbing is supported in <include> statements.
Properly detect circular include loop dependencies.

Reviewed by:	gad@
Approved by:	wes@ (mentor)
MFC after:	2 months
2010-05-29 22:55:59 +00:00
Gordon Tetlow
a40596d77a Convert newsyslog to using queue(3) macros instead of a home rolled version.
Reviewed by:	gad@
Approved by:	wes@ (mentor)
MFC after:	2 months
2010-05-29 22:52:17 +00:00
Ulrich Spörlein
0b31f1f731 mdoc: move remaining sections into consistent order
This pertains mostly to FILES, HISTORY, EXIT STATUS and AUTHORS sections.

Found by:	mdocml lint run
Reviewed by:	ru
2010-05-13 12:08:11 +00:00
Xin LI
ccc28f774a Add a new option, -P, which reverts newsyslog(8) to the old behavior,
which stops to proceed further, as it is possible that processes which
fails to create PID file get screwed by rotation.

Requested by:	stas
MFC after:	2 weeks
X-MFC with:	r200806
2010-01-20 01:07:38 +00:00
Ed Schouten
71ccf09269 The last big commit: let usr.sbin/ use WARNS=6 by default. 2010-01-02 11:07:44 +00:00
Xin LI
f65917cdc3 Don't consider non-existence of a PID file an error, we should be able
to proceed anyway as this most likely mean that the process has been
terminated.

PR:		bin/140397
Submitted by:	Dan Lukes <dan obluda cz>
MFC after:	1 month
2009-12-21 20:12:01 +00:00
Maxim Sobolev
cb45b78eae Fix 6-year old cut&paste error. The # could be escaped with '\', not
with '\\'.

MFC after:	2 weeks
2008-06-26 07:02:47 +00:00
Xin LI
874f1f4efe Fix two typos. 2008-01-30 22:11:59 +00:00
Remko Lodder
67f3da0107 s/effect/affect/
PR:		docs/118266
Submitted by:	"Kim Scarborough" <sluggo at unknown dot nu>
MFC After:	3 days
2007-11-27 06:50:21 +00:00
Ruslan Ermilov
bc84aa4ba3 Markup fixes. 2006-09-29 17:57:04 +00:00
Xin LI
ccb43d66aa Use same signedness for i and matched_c. This should make
newsyslog(8) WARNS=6 clean.
2006-08-17 18:15:43 +00:00
Maxim Sobolev
7697c5e483 Remove mention of the `W' flag, which has been turned to no-op by the
neworder change. Keep the option in a config file parser, to not
violate POLA.

MFC after:	2 weeks
2006-07-21 22:13:06 +00:00
Garance A Drosehn
656f773000 Remove the last three calls to strncpy(), two of which would have
been bugs if the source had ever been too big for the destination.

MFC after:	3 weeks
2006-06-27 22:14:09 +00:00
Garance A Drosehn
a04de8fa95 Remove the "oldorder" processing. The "neworder" processing has
been the default for two years now, without any problems reported.

MFC after:	3 weeks
2006-06-27 00:18:15 +00:00
Garance A Drosehn
616270cb21 Improve error-handling related to the fork() done to compress files after
they have been rotated.  Among other things, use warnx() instead of warn()
for some messages where the value if errno is irrelevant to the problem
being reported.

MFC after:	5 days
2006-01-20 05:18:01 +00:00
Maxim Sobolev
4fd87db95a Fix logic error which causes <null> to be printed instead of the
actual file name in error message.

MFC After:	2 weeks
2005-12-01 03:47:01 +00:00
Ruslan Ermilov
9d73fabda7 Markup fixes.
Approved by:	re (blanket)
2005-06-14 12:26:36 +00:00
Brooks Davis
deea909a70 Add the -N option to not rotate any files. This is to be used in
cojunction with -C and is used by /etc/rc.d/newsyslog.

I forgot that this was in my perforce tree and not my running system and
thus committed a non-working newsyslog script.

Reported by:	des
Pointy hat:	brooks
2005-03-03 15:47:32 +00:00
Tom Rhodes
35da865ad7 Add a HISTORY section.
PR:	75282
2005-02-24 06:03:31 +00:00
Ruslan Ermilov
0227791b40 Expand *n't contractions. 2005-02-13 22:25:33 +00:00
Ruslan Ermilov
5c8e5f2462 Fixed xrefs. 2005-01-21 10:35:40 +00:00
Ruslan Ermilov
59a3c79da6 Sort sections. 2005-01-18 20:02:45 +00:00
Xin LI
9e3daa8dcf Because the `permission' field in conf_entry is intended to be used as
parameter 2 in chmod(2), which is a mode_t (and in turn a __uint_16_t),
it's more likely that it should be defined as an unsigned variable.

This commit should make newsyslog WARNS=6 clean, but don't bump the knob
until I have a universe build.

MFC After:	1 month
2005-01-04 02:24:01 +00:00
Brooks Davis
5616e1bc20 Mention "-d directory" in usage().
Pointy hat to:	brooks
2004-10-06 04:47:37 +00:00
Brooks Davis
59fdf30f92 Don't prepend the directory specified by -d when the file is a relative
path.  Doing so makes no sense.  I'm not sure allowing relative paths
makes sense either, but I'm not going to break that now.
2004-10-05 22:16:31 +00:00
Brooks Davis
842ba60ee2 Add a new -d argument which is used to specify an alternate root for log
files similar to DESTDIR in the BSD make process.  This only affects log
file paths not config file (-f) or archive directory (-a) paths.
2004-10-04 23:35:13 +00:00
Maxim Sobolev
ea6902220d Nothing says that /var/log can't be not a directory but a symbolic link
to a directory. Therefore, use stat(2) instead of lstat(2) to check if
/var/log exists.

MFC after:	7 days
2004-07-04 17:24:12 +00:00
Ruslan Ermilov
07bfccd71e Mechanically kill hard sentence breaks. 2004-07-02 23:13:00 +00:00
Garance A Drosehn
fbb4e16a3b Fix the format-string in a call to err(). It was causing a warning if
compiled on 4.x-stable.
2004-06-20 17:26:47 +00:00
Garance A Drosehn
5ff798ca5f Fix the check for a "duplicate filename to compress", so that we're checking
the *filename* and not the pid_file(!).   Stupid brain-fault on my part.
This could cause a segfault under -neworder if newsyslog had to rotate
multiple files, and later ones had specifed the 'N' flag.

Bug first reported by:	le
MFC after:	3 days
2004-06-19 03:28:42 +00:00
Ruslan Ermilov
9cdb6ee164 Assorted markup, grammar, and spelling fixes. 2004-06-13 18:03:44 +00:00
Garance A Drosehn
c8fd7c3227 Switch to using the "neworder" for rotating log files, by default. The
main advantage of this is that daemon's are only signalled once per run,
instead of once for each file that is rotated.

MFC after:	2 weeks
2004-06-12 19:53:08 +00:00
Garance A Drosehn
398faf1205 Drop the include for <stdint.h>, it was only needed when this was
using __DECONST() for something, and that reference has been removed.

Noticed by:	Helge Oldach
MFC after:	13 days
2004-06-07 21:53:27 +00:00
Garance A Drosehn
4559c1817b Add an "oldorder" option, so that when the default changes to "neworder",
people have a way to drop back to the previous logic.

MFC after:	13 days
2004-06-07 21:18:09 +00:00
Garance A Drosehn
aa6904eb66 In "neworder" processing, reduce the delay between signals to separate
processes, and balance that by adding a 10-second delay after all the
processes have been signaled.  Also improvement a few messages printed
with `-n' or `-v' processing (mostly signal-related messages).

MFC after:	13 days
2004-06-07 21:09:58 +00:00
Garance A Drosehn
7f5b34d7c0 Major re-ordering of the steps that newsyslog will use when processing
files to rotate.  The new order will first rotate all files that need
to be rotated, and then send a single signal to each process which
needs to be signaled, and finally it will compress all the files which
were rotated.

This means daemons will be signaled once per run of newsyslog, instead
of once per file rotated.  Also, files will be compressed in order of
file-size (smallest to largest).  Also, it waits for each file to be
completely compressed before starting the next one (effectively as if
the 'w' flag is specified for all entries in newsyslog.conf).  This
avoids the situation of having 10 gzip's going at the same time (each
with a log.0 and a log.0.gz file active), and it also means that file
attributes can be reliably set on files after they are compressed.

NOTE: This commit does define NEWORDER (which you could get rid of if
you really don't trust this), but it does not flip the "-D neworder"
switch.  So, at the moment none of these changes happen unless you
request them (perhaps by adding '<debug> neworder' in newsyslog.conf).

PR:		bin/25070 inspired some parts of this
Submitted by:	parts from bin/25070 done by Helge Oldach
MFC after:	14 days
2004-06-07 02:10:10 +00:00
Garance A Drosehn
9d780a43c4 A variety of minor changes. Allow users to set a debugging option via
the newsyslog.conf file.  Rename one size-related variable, and move
another one from the stack into conf_entry.  Add a routine to change
file-attributes (chown, chmod, chflags), instead of having several
places doing the same sequence of system-calls.  A few cosmetic/style
changes.

These should not effect any users.  Most of these probably look
pointless, but they are the "insignificant parts" of a much larger
update that I'll be committing soon.  Doing these as a separate update
should make that update easier to read.

MFC after:	14 days
2004-06-07 01:21:30 +00:00
Garance A Drosehn
d7dc92dc0f Style-istic fix to a number of #define's that were not followed by a tab...
MFC after:	16 days
2004-06-03 23:44:38 +00:00
Garance A Drosehn
55bf17e958 Add a 'D' flag that can be specified on entries in newsyslog.conf.
If specified, the matching log files will have the NODUMP flag set
on them after they are created.

Submitted by:	Sean Eric Fagan
MFC after:	16 days
2004-06-03 23:41:49 +00:00
Garance A Drosehn
b2cd42638f Change standard processing to use the newer createlog() routine
that had been written some months ago for other processing.  This
should get rid of a few subtle situations where an existing log
file would not exist (for a short time) while it is being rotated.

MFC after:	16 days
2004-06-03 22:26:16 +00:00
Garance A Drosehn
efdb85c8f4 Improved versions of the is*ch() and tolowerch() macros that I like to use. 2004-06-02 00:14:28 +00:00
Garance A Drosehn
f1da56014e When rotating some "blah.log" file, make sure that a chmod and
(if requested) a chown is done on the "blah.log.0" file.

PR:		bin/67137
Submitted by:	jeh
MFC after:	10 days
2004-06-02 00:02:12 +00:00
Philippe Charnier
66e338b333 Do not :-terminate err(3) string, one will be added anyway. 2004-04-04 19:25:39 +00:00
Tom Rhodes
491abe5ac7 Move newsyslog.conf.5 to usr.sbin/newsyslog. There is no real history
other than 'initial revision' thus I did not request a repocopy.

Requested by:   ru, gad
2004-03-12 16:03:26 +00:00
Tom Rhodes
ef4b3aa2e3 Remove information about the configuration file.
Add an Xref to newsyslog.conf.5 and bzip2.1.
2004-03-11 04:32:16 +00:00
Garance A Drosehn
c303328741 Handle a 'const' parameter without using __DECONST().
MFC after:	14 days
2003-10-04 02:24:47 +00:00
Garance A Drosehn
6a1485e2fe Restructure the time processing routines, mainly to fix up the
"will trim at" message printed when the user requests '-v'.  The
previous code would often print the wrong time, such as:
On Sept 22, run:   newsyslog -nv /var/log/wtmp
        And see:   will trim at Mon Sep  1 05:00:00 2003
    correct msg:   will trim at Wed Oct  1 05:00:00 2003

MFC after:	20 days
2003-09-23 00:00:26 +00:00
Garance A Drosehn
526d55a405 Correct the calculation of "a leap year" in parseDWM. The calculation
would only match a leap year every 400 years.  The parseDWM code first
showed up in April 2000, so the first time this bug would cause any
confusion is in Feb 2004.

MFC after:	18 days
2003-09-14 00:56:50 +00:00
Garance A Drosehn
2f8d7c56da Move the parse8601 and parseDWM routines into a new ptime.c file. The
only code-change is to add a "next_time" parameter to both routines (and
that is not used yet).  A later update will make "next_time" more useful.

MFC after:	20 days
2003-09-12 01:33:37 +00:00
Garance A Drosehn
3c0f0ccce7 Switch dotrim() to take advantage of the 'struct conf_entry' that
is already passed in, instead of having the caller copy values from
that struct into additional parameters.

MFC after:	22 days
2003-09-09 21:14:05 +00:00
Garance A Drosehn
1005e972cb Reduce the annoying compiler warnings that pop up when compiling with
gcc 3.3.x and -Wshadow.  Just renames 'log' variables to be 'logname'.

MFC after:	22 days
2003-09-09 20:29:26 +00:00
Garance A Drosehn
1f566014a3 Correct the comment about which timezone-change loses an hour...
MFC after:	23 days
2003-09-09 05:26:27 +00:00
Garance A Drosehn
9b8311cef6 Add a '-D <something>' command line arg, which can be used to set
debugging options.  Initial option is '-D TN=<time>', which can be
used to see how newsyslog would work if run at the specified time.
(time format is ISO 8601, since that is already supported).

MFC after:	23 days
2003-09-09 05:23:06 +00:00
Garance A Drosehn
c31cdd1bd2 Use strtol() instead of strtoul() in parse8601, so we can detect
negative values.  Mainly done to sync this routine with OpenBSD.

Obtained from:	OpenBSD
MFC after:	23 days
2003-09-09 03:04:50 +00:00
Garance A Drosehn
5303adbf2c Fix typo in the previous commit. Was checking wrong variable...
MFC after:	23 days
2003-09-09 02:58:23 +00:00
Garance A Drosehn
32734b8a2f Change parse8601 and parseDWM so they return an alternate error value
for invalid times, and have the caller print the error message.

MFC after:	23 days
2003-09-09 02:50:25 +00:00
Garance A Drosehn
ab76625820 Cosmetic change to move parse8601 right next to parseDWM. No code
is changed.  (that will come in later updates).

MFC after:	23 days
2003-09-09 02:21:53 +00:00
Garance A Drosehn
c877fb5131 When checking the 'user:group' field in newsyslog.conf, freebsd's source
was mistakenly calling the standard isnumber() function to find out if
the given 'user' or 'group' were all numeric.  This meant that only the
first character of the fields were actually checked, so a username of
(say) '3com' would look like a number, and thus get mapped to uid=3 (bin)
instead of username=3com.

This bug was introduced back in freebsd's v1.1.  That initial import
almost matches netbsd's v1.9, except that an internal isnumber()
routine was removed in favor of the standard library version.  The thing
is, that internal routine was checking the entire string, and not just
the first digit.  In OpenBSD, isnumber() was eventually renamed to
isnumberstr() to make the distinction more obvious, and I'm going to
follow that lead.

I believe this also happens to remove the last references to isnumber()
in the entire freebsd base system.

Obtained from:	OpenBSD, by a long circuitous route
MFC after:	5 days
2003-08-19 03:53:03 +00:00
Garance A Drosehn
0d5a03997a Fix an 'bad file descriptor' error which would come up when using
the 'C' flag on an entry that also specifies 'user:group' info.

Submitted by:	Riccardo Torrini <riccardo@torrini.org> in -current
MFC after:	4 days
2003-08-02 23:03:37 +00:00
Garance A Drosehn
4adea93613 Fix age_old_log checking so that it will notice log files which were
rotated and then compressed with bzip2 instead of gzip.  Otherwise,
any file which had a time-interval specified for 'when' and also
specified the 'J' flag would be rotated every time newsyslog was run.
(this is a quick-fix, trying to beat the code-freeze for 5.1-release)

PR:		bin/51519
MFC after:	1 week
2003-05-05 23:38:03 +00:00
Garance A Drosehn
bedb455962 Slightly improve the checking of the 'size' field, so people will get
a warning message if they switch the values for 'size' and 'when'.

MFC after:	1 week
2003-05-05 22:27:37 +00:00
David E. O'Brien
b728350ee6 Use __FBSDID over rcsid[]. Protect copyright[] where needed. 2003-05-03 21:06:42 +00:00
Garance A Drosehn
28045703cc Add a -C (create) option for newsyslog, and a 'C' flag for entries in the
config file.  If the -C option is specified once, then newsyslog will create
any entries which specify the 'C' option.  If -C is given twice, then
newsyslog will create all missing log files.  Some of this code comes
from NetBSD, although this implementation does not exactly match theirs.

Reviewed by:	freebsd-arch
MFC after:	10 days
2003-04-27 23:37:31 +00:00
Garance A Drosehn
bc6c007686 Document support for the new 'U' flag, which was implemented back in March
as revision 1.64 of newsyslog.c.  I plan to MFC these changes next week.

MFC after:	1 week
2003-04-24 20:50:01 +00:00
Garance A Drosehn
3d3e9b01a1 Document support for the new -s and -R command-line options, and
the 'N' flag.  These were coded in March as revisions 1.55 and 1.56
of newsyslog.c.  I intend to MFC all the matching changes next week.
This also reorganizes the description of the 'flags' field to give
list of the valid flags, instead of a long paragraph explaining
each of the possible values.

Obtained from:	NetBSD (in spirit at least, for -s and N)
MFC after:	1 week
2003-04-24 01:34:40 +00:00
Garance A Drosehn
356e4049da Document support for the <default> entry, which was implemented in
revision 1.50 of newsyslog.c , back in February.  I intend to MFC
those changes soon.

MFC after:	4 days
2003-04-23 21:26:12 +00:00
Garance A Drosehn
9ffd2d77ef Fix interactions between entries for a specific file vs entries for
a filename pattern, and also wrt filenames given on the command line.
Now if a file is listed as a specific entry, it will not *also* be
processed by an entry specifying a pattern.  And filename-patterns
will now only match existing files (ignoring directories, etc).

MFC after:	3 weeks
2003-03-09 03:19:52 +00:00
Garance A Drosehn
4ebd61a3cf The processing of files given on the command-line will work a little better
if we return the entire worklist, instead of just the last entry.  A minor
fix to revision 1.57.

MFC after:	15 days
2003-03-09 00:29:40 +00:00
Garance A Drosehn
ae77078c25 Add a config-file flag of 'U' or 'u' to indicate that the pid-file
will contain the pid for a process group.  This means the file must
contain a negative value (as would be needed in the 'kill' commmand).
I still need to write man-page update before MFC-ing.

This started by rewriting the get_pid() routine.  Later I looked at
what OpenBSD has, and included a few ideas from their send_signal()
routine.  So, parts of this change are from OpenBSD, even though
OpenBSD does not actually have a 'U' flag.

PR:		bin/28435
Reviewed by:	no objections on freebsd-arch
MFC after:	3 weeks
2003-03-08 20:07:01 +00:00
Garance A Drosehn
a42568171f Prefix all -n (noaction) "unix cmds" with tab, thus making it much easier
to sort out noaction messages from -v (verbose) messages.  This also
improves a few noaction messages.

Obtained from:	OpenBSD
MFC after:	3 weeks
2003-03-07 21:29:34 +00:00
Garance A Drosehn
40fe458d04 Move the -s (nosignal) processing, as newsyslog needs to print out a
warning message if -s is specified and it rotates a file that expects
to be compressed.  This warning message is not printed if -R is also
specified, because we assume a -sR request is coming from the process
which would have been signaled, and that it has already released the
logfile.

Indirectly noticed by:	sheldonh
2003-03-07 21:06:32 +00:00
Garance A Drosehn
69ea8786d6 Add missing 'static' on two routines, so they match their declarations.
PR:		29363 (a small part of)
Submitted by:	dinoex
MFC after:	3 weeks
2003-03-03 15:31:35 +00:00
Garance A Drosehn
d4948dc25e A variety of cosmetic changes, mostly to (slightly) reduce diffs with
OpenBSD.  Except for one added '\n', the object code is not changed.

MFC after:	3 weeks
2003-03-03 02:53:35 +00:00
Garance A Drosehn
2f5d9e2994 Collapse two more parameters to dotrim() into the 'ent' parameter that is
already there.  This should not effect anything.

MFC after:	3 weeks
2003-03-03 01:58:33 +00:00
Garance A Drosehn
e2fe500ec5 Change to using uid_t and gid_t instead of int. Also change this won't
bother doing a chmod() if neither of these two fields are set.

Obtained from:	OpenBSD
MFC after:	3 weeks
2003-03-03 01:23:34 +00:00
Garance A Drosehn
7cf31d2ff5 Fix the interactions between specific log files given on the command line,
and config-file entries which specify a filename-pattern (glob).  It is
still not perfectly-right, but at least it isn't completely-wrong.

Reviewed by:	no objections on freebsd-arch
MFC after:	3 weeks
MFC addendum:	(or after the code-freeze of 4.x is lifted)
2003-03-03 00:01:51 +00:00
Garance A Drosehn
9fb022b6d6 Add a command-line option of '-R somename', which indicates that newsyslog
should rotate all files given on the command, even if they don't seem to
need to be rotated.  This would be used by some other command that decides
the given log file(s) should be rotated, but wants the "how" of that rotation
to be determined by entries to newsyslog.  Wes expects to change syslogd to
take advantage of this.  Man page will be updated after we're sure this is
all working the way we want it to.

Reviewed by:	no objections on freebsd-arch
MFC after:	3 weeks
MFC addendum:	(or after the code-freeze of 4.x is lifted)
2003-03-02 23:23:11 +00:00
Garance A Drosehn
f2c3715aa7 Add a command-line option of '-s', which indicates that newsyslog should
not send a signal to any processes.  Also add a config-file flag of 'N' or
'n', which indicates that the given logfile has no process which needs a
signal when it is rotated.  Both of these are based on changes NetBSD
has made, although the implementation is somewhat different.

PR:		bin/36553  (2nd half)
Reviewed by:	no objections on freebsd-arch
Obtained from:	NetBSD (in spirit, at least)
MFC after:	3 weeks
2003-03-02 22:05:17 +00:00
Garance A Drosehn
5ac30d6d34 Fix an error which caused 'free(): error: chunk is already free'
if an entry in the config file included flag 'G'.

MFC after:	3 weeks
2003-02-26 03:20:38 +00:00
Garance A Drosehn
39d0141328 Check the value given for number-of-logs to keep in config-file entries,
and error-out if the value is negative (avoiding an infinite loop).

PR:		bin/30654 (part of it)
MFC after:	3 weeks
2003-02-24 02:28:46 +00:00
Garance A Drosehn
27f1bc0c71 1) Fix so -a honors the -n ("do nothing") option. Before, if the directory
given for -a did not exist, then newsyslog would always try to create
   it, even if -n was specified.
2) When -a processing *does* create the directory, have it check the result
   from mkdir(), and immediately error-out if that failed.

PR:		bin/46974
MFC after:	3 weeks
2003-02-24 02:09:02 +00:00
Garance A Drosehn
debfc5e11d Minor style fix. Add parenthesis around 'return' values.
Reviewed by:	md5
MFC after:	3 weeks
2003-02-24 01:05:05 +00:00
Garance A Drosehn
93943fff46 Add the idea of a "default rotate action", which will be used if a file is
specified at runtime, but that filename is not listed in the newsyslog.conf
file.  This default-action can be changed by having a line in newsyslog.conf
with the filename of "<default>".  Before this change, the program would
quietly ignore the given file.  An update to the man page will be written
after I finish some other updates to newsyslog.c.

Reviewed by:	no objections from freebsd-arch
MFC after:	3 weeks
2003-02-24 00:51:41 +00:00
Jens Schweikhardt
57bd0fc6e8 english(4) police. 2002-12-27 12:15:40 +00:00
Tom Rhodes
35c45e664a Make newsyslog(8) print the correct date when the logs are turned over.
PR:		46395
Submitted by:	maxim
MFC:		eventually
2002-12-21 22:27:26 +00:00
Maxim Sobolev
bffa911730 Add a new W' flag, that when used in conjunction with the Z' flag or the
`J' flag means that newsyslog should wait for previously started compression
jobs to complete before starting a new one for this entry.  When it is used
along with the `G' flag, in the case when several logfiles match the pattern
and should be compressed, the newsyslog will compress logs one by one,
ensuring that only one compression job is running at a time.

This prevents newsyslog(8) from overloading system by starting several
compression jobs on big files simultaneously.

Sponsored by:	Porta Software Ltd
MFC after:	2 weeks
2002-12-15 19:28:02 +00:00
Maxim Sobolev
4ea03b3140 Backout unapproved WARNS level change occasionally slipped into previous
commit.

Big pointy hat to:	sobomax
2002-12-11 01:21:57 +00:00
Maxim Sobolev
f2562be03e - Allow comments to be placed at the end of configuration line.
Sponsored by:   Porta Software Ltd
Approved by:    re
MFC after:      2 weeks
2002-12-11 01:19:56 +00:00
Ruslan Ermilov
c041c1e0d9 mdoc(7) police: markup fixes.
Approved by:	re
2002-11-27 15:31:08 +00:00
Maxim Sobolev
2e01a2be1e Add a new newsyslog.conf flag - 'G', which if set tells newsyslog(8) that
the specified filename of the log to be rotated is in fact shell glob
pattern. In this case, all files matching this pattern will be rotated
using the same options. Useful in the case when there is no pre-defined
name for the logfiles (e.g. xtradius, samba etc).

Sponsored by:	PortaOne Software Ltd
MFC after:	2 weeks
2002-11-14 08:43:07 +00:00
Maxim Konovalov
a9a25f59fa Fix getopt(3) optstring: remove a flag we does not handle.
PR:		bin/44066
Submitted by:	Stefan Farfeleder <e0026813@stud3.tuwien.ac.at>
MFC after:	1 week
2002-10-16 14:20:20 +00:00
Philippe Charnier
490d5836b5 The .Nm utility 2002-07-14 14:47:15 +00:00
Maxim Konovalov
21ee796112 Remove the last EOF spaces I missed in rev. 1.43.
MFC after:	1 week
2002-07-01 13:18:52 +00:00
Maxim Konovalov
cc37581539 style(9): sort includes, remove EOL spaces.
MFC after:	1 week
2002-05-03 21:03:37 +00:00
Maxim Konovalov
021e53b8df wait(2) for compress_log() processes to complete before exit.
Spotted by:	Grigoriy Strokin <grg@isabase.philol.msu.ru>
Reviewed by:	-current
MFC after:	1 month
2002-05-03 20:53:37 +00:00
Sheldon Hearn
669d663174 Close a very small window during which new (empty) instances of rotated log
files are owned by the caller of newsyslog (usually root:wheel) even if
alternative ownerships were specified in newsyslog.conf.

Note that this is part of a wider problem which is fully addressed in
OpenBSD.  Anyone with the time and inclination to incorporate the full
fix for the wider problem will receive no complaints from me and should
feel free to walk all over this delta.

PR:		bin/36738
MFC after:	1 week
2002-04-10 10:38:44 +00:00
Crist J. Clark
aeeb2b2bbb Produce a different error message for mktime(3) failure than for bad
newsyslog.conf syntax.

PR:		bin/36641
2002-04-02 12:03:16 +00:00
Peter Pentchev
115f46ff8f Fix -F with logfiles rotated on time only.
Approved by:	silence on -audit
MFC after:	1 month
2002-02-05 09:33:07 +00:00
David E. O'Brien
a4482d5ce1 Fix the type of the NULL arg to execl(). 2001-11-14 17:00:58 +00:00
Ruslan Ermilov
eb6626f52a WARNS= -> WARNS?= 2001-09-21 07:25:53 +00:00
David E. O'Brien
904cc0c45c jhb says a 10 line change containing casts is more invasive than a 28 line
change.
2001-07-31 16:25:55 +00:00
David E. O'Brien
f1d4135bd9 Use the POSIX syntax for chown.
Submmited by:	garrett
2001-07-30 23:26:19 +00:00
Garrett Wollman
ef404327b0 Simplify (and hopefully clarify) some date-parsing arithmetic. 2001-07-30 18:27:21 +00:00
David E. O'Brien
4c9237c908 style(9) 2001-07-30 16:27:16 +00:00
David E. O'Brien
9674b13dcb WARNS-2'ify.
(this included removing the funny "if (unsigned_var < 0)" test)
2001-07-30 15:41:20 +00:00
David E. O'Brien
e12f0d2fac Add the ability to Bzip2 your logs.
PR:		27901
Submitted by:	Anders Nordby <anders@fix.no> (stylistic changes by me)
2001-07-30 15:17:17 +00:00
David E. O'Brien
90e655ea4e Perform a major cleanup of the usr.sbin Makefiles.
These are not perfectly in agreement with each other style-wise, but they
are orders of orders of magnitude more consistent style-wise than before.
2001-07-20 06:20:32 +00:00
Garrett Wollman
9fb54cb322 Note the equivalence of certain time formats. 2001-07-19 15:52:02 +00:00
Dima Dorfman
5d88e21a2a Instead of giving an example of rotating logs at the end of the month,
give an example of how to rotate logs at the beginning of the month.
Although they sound the same, since both of them rotate logs at the
beginning of the day, the former ended up taking place on, e.g., July
31 00:00 instead of the expected July 31 23:59.  This is contraty to POLA.

Submitted by:	Dan Langille <dan@langille.org>
2001-07-19 11:18:42 +00:00
Dima Dorfman
f247324df7 Remove whitespace at EOL. 2001-07-15 08:06:20 +00:00
Brian Somers
7bc6d0158f Fix the type of the NULL arg to execl()
Idea from: Theo de Raadt <deraadt@openbsd.org>
2001-07-09 09:24:06 +00:00
Dima Dorfman
1818ea96a7 Fix a grammar bogon. 2001-04-02 06:21:13 +00:00
Ruslan Ermilov
345e52e742 - Backout botched attempt to introduce MANSECT feature.
- MAN[1-9] -> MAN.
2001-03-26 14:42:20 +00:00
Ruslan Ermilov
c73e22c3d4 Set the default manual section for usr.sbin/ to 8. 2001-03-20 18:17:26 +00:00
Ruslan Ermilov
610a5778c5 mdoc(7) police: split punctuation characters + misc fixes. 2001-02-01 16:44:04 +00:00
Chris D. Faulhaber
3c0cec43e7 - Correct MAXPATHLEN/MAXHOSTNAMELEN usage
- Check return values of malloc() and strdup()
- Replace strcpy()/strcat()/sprintf() usage with strlcpy()/snprintf

Reviewed by:	-audit
2001-01-20 17:36:08 +00:00
Ruslan Ermilov
e97407b4f2 mdoc(7) police: use the new features of the Nm macro. 2000-11-20 20:10:44 +00:00
Josef Karthauser
6b9a6e1f20 When warning that a log file can't be compressed, tell the reader which
log file it was.
2000-08-15 09:34:41 +00:00
Dag-Erling Smørgrav
78ae26252e Allow user to specify which logs to rotate 2000-05-11 10:17:54 +00:00
Hellmuth Michaelis
70fa0440ad - implement logfile archivation to a separate, user
configurable directory
- implement alternate and more flexible way to specify
  logfile rotation time in addition to the ISO 8601
  restricted format
- cleanup the source which was a mix of several styles
  of persons who maintained it so far, ran through
  knfom script got from bde.

Reviewed by: (in part) sheldonh and garyj
2000-04-04 08:50:01 +00:00
Hellmuth Michaelis
c7c83aedf5 Run newsyslog source through knfom script obtained from Bruce Evans.
Joerg Wunsch suggested to do this to make the functional changes in
the next commit to newsyslog (which were run through the same script)
better visible.
2000-04-04 08:38:30 +00:00
Sheldon Hearn
f2e366a105 Remove single-space hard sentence breaks. These degrade the quality
of the typeset output, tend to make diffs harder to read and provide
bad examples for new-comers to mdoc.
2000-03-01 14:09:25 +00:00
Philippe Charnier
a39d9a0c5a .Nm corrections 1999-11-27 16:57:27 +00:00
Peter Wemm
97d92980a9 $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
David E. O'Brien
d00fc946ed Correctly refer to the companion program rather than as "chown".
Clean up wording a little (like I have any idea what real English looks like...)
1999-07-28 04:28:05 +00:00
David E. O'Brien
ae2c5cf197 Go back to allowing ``.'' as a username.group separator for backward
compatibility.  : is still the documented non-ambiguous approach.  The
algorithm used will correctly parse david.obrien.staff as strrchar() is
used, and in my mind more people would use a ``.'' in the username than
the group name.

Convinced by argument and patch by: sheldonh (with slight changes by me)
1999-07-28 04:26:10 +00:00
David E. O'Brien
63b5983b9e Syntax for user/group is changed from "user.group" to "user:group" to be
consistant with chown(8).
1999-06-28 03:15:02 +00:00
Chuck Robey
06497d232b Fix description of size, it's in kilobytes, not bytes. 1999-04-10 15:09:07 +00:00
Garrett Wollman
e288508dc3 jkoshy forgot up update the heading date on the man page. 1999-01-28 19:56:05 +00:00
Joseph Koshy
ad088da187 Note that the 'owner.group' field is optional in the config file.
PR:		docs/9602
Submitted by:	Kazuo Horikawa <horikawa@jp.freebsd.org>
1999-01-27 04:27:49 +00:00
Garrett Wollman
8fba304b43 A slight bit of code and doco cleanup, but mostly:
Add the much-needed and long-desired ability to force the log rotation
to take place on a specific day or time, and document same.  This works
by extending the syntax of the `when' field to allow a restricted
ISO 8601 time specification, and performing the log rotation if newsyslog
is run during the same hour as is specified.
1999-01-22 19:38:39 +00:00
Peter Wemm
ab65c1d9b0 The largest PID is now 99999
Reported by: Ben Stuyts <ben@stuyts.nl>
1998-12-23 12:03:33 +00:00