Commit Graph

66 Commits

Author SHA1 Message Date
Ed Schouten
1a874a126a Add RFC 5424 syslog message output to syslogd.
- Move all of the code responsible for transmitting log messages into a
  separate function, fprintlog_write().
- Instead of manually modifying a list of iovecs, add a structure
  iovlist with some helper functions.
- Alter the F_FORW (UDP message forwarding) case to also use iovecs like
  the other cases. Use sendmsg() instead of sendto().
- In the case of F_FORW, truncate the message to a size dependent on the
  address family (AF_INET, AF_INET6), as proposed by RFC 5426.
- Move all traditional message formatting into fprintlog_bsd(). Get rid
  of some of the string copying and snprintf()'ing. Simply emit more
  iovecs to get the job done.
- Increase ttymsg()'s limit of 7 iovecs to 32. Add a definition for this
  limit, so it can be reused by iovlist.
- Add fprintlog_rfc5424() to emit RFC 5424 formatted log entries.
- Add a "-O" command line option to enable RFC 5424 formatting. It would
  have been nicer if we supported "-o rfc5424", just like on NetBSD.
  Unfortunately, the "-o" flag is already used for a different purpose
  on FreeBSD.
- Don't truncate hostnames in the RFC 5424 case, as suggested by that
  specific RFC.

For people interested in using this, this feature can be enabled by
adding the following line to /etc/rc.conf:

  syslogd_flags="-s -O rfc5424"

Differential Revision:	https://reviews.freebsd.org/D15011
2018-04-15 08:34:16 +00:00
Warner Losh
e8d2bea9cb Close the fp rather than the fd since we fdopen the fd so we don't
leak the FILE *.

CID: 978383
2017-12-28 05:34:29 +00:00
Pedro F. Giffuni
8a16b7a18f General further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 3-Clause license.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.
2017-11-20 19:49:47 +00:00
Bryan Drewery
ea825d0274 DIRDEPS_BUILD: Update dependencies.
Sponsored by:	Dell EMC Isilon
2017-10-31 00:07:04 +00:00
Warner Losh
fbbd9655e5 Renumber copyright clause 4
Renumber cluase 4 to 3, per what everybody else did when BSD granted
them permission to remove clause 3. My insistance on keeping the same
numbering for legal reasons is too pedantic, so give up on that point.

Submitted by:	Jan Schaumann <jschauma@stevens.edu>
Pull Request:	https://github.com/freebsd/freebsd/pull/96
2017-02-28 23:42:47 +00:00
Pedro F. Giffuni
a8126b4c70 Revert r286144 leaving the original fix to the buffer overflow.
Some developers consider the new code unnecessarily obfuscated.
There was also a benign off-by-one.

Discussed with:	bde, vangyzen, jmallett
2015-08-04 02:56:31 +00:00
Pedro F. Giffuni
fc9ce3812d Buffer overflow in wall(1).
Revert r286102 and apply a cleaner fix.
Tested for overflows by FORTIFY_SOURCE GSoC (with clang).

Suggested by:	bde
Reviewed by:	Oliver Pinter
Tested by:	Oliver Pinter
MFC after:	3 days
2015-08-01 01:29:55 +00:00
Pedro F. Giffuni
479184e919 Buffer overflow in wall(1).
This affected syslogd, wall and talkd.
Detected by FORTIFY_SOURCE GSoC (with clang).

Submitted by:	Oliver Pinter
Differential Revision:	https://reviews.freebsd.org/D3254
Reviewed by:	delphij, jmg
MFC after:	3 days
2015-07-31 01:12:31 +00:00
Simon J. Gerraty
ccfb965433 Add META_MODE support.
Off by default, build behaves normally.
WITH_META_MODE we get auto objdir creation, the ability to
start build from anywhere in the tree.

Still need to add real targets under targets/ to build packages.

Differential Revision:       D2796
Reviewed by: brooks imp
2015-06-13 19:20:56 +00:00
Simon J. Gerraty
44d314f704 dirdeps.mk now sets DEP_RELDIR 2015-06-08 23:35:17 +00:00
Simon J. Gerraty
fae50821ae Updated dependencies 2014-05-16 14:09:51 +00:00
Simon J. Gerraty
76b28ad6ab Updated dependencies 2014-05-10 05:16:28 +00:00
Simon J. Gerraty
7cf3a1c6b2 Updated dependencies 2013-03-11 17:21:52 +00:00
Simon J. Gerraty
f5f7c05209 Updated dependencies 2013-02-16 01:23:54 +00:00
Simon J. Gerraty
23090366f7 Sync from head 2012-11-04 02:52:03 +00:00
Eitan Adler
50e04779c4 Check the return error of set[e][ug]id. While this can never fail in the
current version of FreeBSD, this isn't guarenteed by the API.
Custom security modules, or future implementations of the setuid and
setgid may fail.

Submitted by:	Erik Cederstrand
Approved by:	cperciva
MFC after:	3 days
2012-10-22 03:07:05 +00:00
Marcel Moolenaar
7750ad47a9 Sync FreeBSD's bmake branch with Juniper's internal bmake branch.
Requested by: Simon Gerraty <sjg@juniper.net>
2012-08-22 19:25:57 +00:00
Gleb Smirnoff
586fbee643 Add multibyte char support.
PR:		165429
Submitted by:	amdmi3
2012-03-21 08:03:07 +00:00
Ed Schouten
d7698e0766 Add missing static keywords to wall(1) 2011-11-06 08:18:55 +00:00
David E. O'Brien
b0023655af If one's message is longer than the buffer size, then we reset 'cnt' at the
wrong point and the actual column # get out of sync across the buffer size.
2011-07-12 00:31:11 +00:00
Joel Dahl
da52b4caaf Remove the advertising clause from UCB copyrighted files in usr.bin. This
is in accordance with the information provided at
ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change

Also add $FreeBSD$ to a few files to keep svn happy.

Discussed with:	imp, rwatson
2010-12-11 08:32:16 +00:00
Ed Schouten
ab90a4d1e2 Perform all trivial ports to utmpx for usr.bin/.
They were already converted to use libulog, so it's easy to convert them
to utmpx.
2010-01-13 18:09:54 +00:00
Ed Schouten
b7946da96b Build usr.bin/ with WARNS=6 by default.
Also add some missing $FreeBSD$ to keep svn happy.
2010-01-02 10:27:05 +00:00
Ed Schouten
645e7f1b9d Add missing `void' keyword. 2009-12-29 22:32:43 +00:00
Xin LI
821df508e8 Revert most part of 200420 as requested, as more review and polish is
needed.
2009-12-13 03:14:06 +00:00
Xin LI
6f2d322192 Remove unneeded header includes from usr.bin/ except contributed code.
Tested with:	make universe
2009-12-11 23:35:38 +00:00
Ed Schouten
bd76376f80 Let wall(1) use utmpx.
Because our implementation guarantees the strings inside struct utmpx to
be null terminated, we don't need to copy everything out, which makes
the code nicer to read.

Also set WARNS to 6 and add $FreeBSD$ to keep SVN silent.
2009-12-05 20:05:25 +00:00
David Schultz
3c58f6ddbd Fix some bugs in wall(1):
- Handle wrapping correctly when \r appears in the input, and don't
  remove the \r from the output.
- For lines longer than 79 characters, don't drop every 80th character.
- Style: Braces around compound while statement.

PR:		114498
Submitted by:	Niclas Zeising <niclas.zeising@gmail.com> (earlier version)
2008-01-15 07:40:30 +00:00
Olivier Houchard
b457a3e19c In wall and who, check that the utmp entry isn't stalled, as it is done in w.
Apparently with the new pts code stalled entries are printed, when they are
not with the BSD ptys.

Submitted by:	Michal Mertl <mime at traveller dot cz>
2006-02-21 13:01:00 +00:00
Hajimu UMEMOTO
d042befb98 make wall(1) work with pts. 2006-01-27 08:52:14 +00:00
Tim J. Robbins
70ad92ab84 Mention in the BUGS section that write and wall bogusly use the sender's
LC_CTYPE setting instead of the receiver's when determining which
characters are printable.
2004-07-17 04:15:27 +00:00
Tim J. Robbins
3d1a01487a Document incorrect handling of multibyte characters. 2004-07-17 04:04:30 +00:00
Ruslan Ermilov
6a3e8b0adc Mechanically kill hard sentence breaks. 2004-07-02 22:22:35 +00:00
Tim J. Robbins
ca78e3fb20 Remove "sleeper" nonsense. 2003-02-21 08:46:44 +00:00
Mike Barcroft
2b7f24d210 Change iov_base's type from char *' to the standard void *'. All
uses of iov_base which assume its type is `char *' (in order to do
pointer arithmetic) have been updated to cast iov_base to `char *'.
2002-10-11 14:58:34 +00:00
Juli Mallett
6fc8ba94c6 Note that this appeared at least as early as PWB UNIX.
Use the literal string 'PWB UNIX', as we still have no .At macro for it.
2002-06-10 22:59:59 +00:00
Philippe Charnier
e8937ba009 Use `The .Nm utility' 2002-04-20 12:18:28 +00:00
Mark Murray
075f293932 WARNS=2 fix, use __FBSDID().
Not added to Makefile as WARNS=2 will be made default.
2001-12-11 22:22:15 +00:00
Dima Dorfman
728d043e5b - Move the prototype of ttymsg() into ttymsg.h. syslogd and talkd
also use this, and they shouldn't have to have their own prototypes.

- Silence warnings about constness and signedness in ttymsg().  This
  includes changing the return value to a `const char *', and changing
  the types of `left' and `wret' (both byte counts) to ssize_t.

Reviewed by:	bde
2001-09-09 14:23:31 +00:00
Ruslan Ermilov
2cfec5ade4 Make ``wall -g'' really DTRT.
Reviewed by:	imp, markm
2001-09-05 15:31:07 +00:00
Ruslan Ermilov
625003720a mdoc(7) police: removed HISTORY info from the .Os call. 2001-07-10 14:16:33 +00:00
Kris Kennaway
a47f98edb4 When opening the file to broadcast, do it with the user's gid, not the
egid (tty).

Obtained from:	OpenBSD
Submitted by:	Maxime Henrion <mux@qualys.com>
Reviewed by:	imp
2001-05-08 11:11:42 +00:00
Andrey A. Chernov
92992ece46 Fix ttynames generation broken with strlcat
PR:		25541
Submitted by:	Nickolay Dudorov <nnd@mail.nsk.ru>
2001-03-05 14:10:15 +00:00
Warner Losh
003ff9433b Add -g group to usage message.
Don't treat pointer as a boolean, but instead test it against NULL.
Add warning for groups that don't exist

Submitted by: ru
2001-03-02 07:30:37 +00:00
Warner Losh
6a20d55a59 o Add support for wall -g. This will send a message to all members of
a given group.
o Minor code style cleanups while I'm here

Reviewed by: bde, kris, markm, audit@
2001-03-01 05:43:12 +00:00
Kris Kennaway
56e7ae90cb Cleanup this code a bit by attempting to sync it up with NetBSD and
with each other.

Reviewed by:	markm, dwmalone
2000-11-26 22:36:35 +00:00
Ruslan Ermilov
8fe908ef0c mdoc(7) police: use the new features of the Nm macro. 2000-11-20 19:21:22 +00:00
Nick Hibma
80af0816cd Instead of printing '(null)' if there is no tty, print 'no tty'.
In the case where the program is executed by a daemon running in the
background the terminal might not have a tty. The '(null)' is confusing.
2000-10-02 17:31:57 +00:00
Jeroen Ruigrok van der Werven
6e5d42b9b0 Let wall report the local timezone as well on output.
PR:		17867
Submitted by:	Joel Ray Holveck <joelh@gnu.org>
Nagged by:	nrahlstr
2000-07-27 07:58:47 +00:00
Guy Helmer
7111b0acef O_NONBLOCK was used as a command with a bogus arg to fcntl(2).
Change it to F_SETFD with an arg of 0 to clear O_NONBLOCK.

PR:		bin/8681
Submitted by:	koyama takahiro <tah@d1.dion.ne.jp>
Prompted by:	Nathan Ahlstrom <nrahlstr@winternet.com>
2000-06-09 19:38:28 +00:00