Commit Graph

72 Commits

Author SHA1 Message Date
Jilles Tjoelker
79e6a2c01e watch: Do not mess up the tty modes on early error.
Record the initial state earlier, so it is always safe to restore it.

One way this happens is if watch(8) is started by a user that does not have
access to /dev/snp. The result is "staircase effect" during later commands.

PR:		bin/153052
MFC after:	1 week
2013-09-05 19:02:03 +00:00
Ed Schouten
0ba64b2731 Perform even more style changes.
- Remove unneeded whitespace for function calls.
- Add empty line at the top of functions without local variables.
- Change while (1) to for (;;).

MFC after:	1 week
2012-03-10 14:38:34 +00:00
Ed Schouten
f10070765a Fix whitespace.
MFC after:	1 week
2012-03-10 14:35:09 +00:00
Ed Schouten
2e37c8eacb Convert the snp(4) driver to use cdevpriv.
Now we have a single /dev/snp device node, which can be opened by
watch(8) multiple times. Even though snp(4) will be dead as of next
week, it's nice having this in SVN, because:

- We may want to MFC it to RELENG_7.
- By the time we fix snp(4) again, it's already there, existing watch(8)
  binaries should already work.

Just like bpf(4), I'm adding a symlink from snp0 to snp to remain binary
compatible.
2008-08-15 13:07:07 +00:00
Rink Springer
868f9ca26a Allow watch(8) to use more than 10 snp* devices. This limitation was purely
due to the way watch(8) looks for available snoop devices.

PR:		bin/118286
Submitted by:	Mykola Zubach <zuborg@advancedhosters.com>
Reviewed by:	rwatson, csjp, imp (all a long time ago)
Approved by:	imp (mentor) (long time ago)
MFC after:	1 week
2008-01-30 13:55:32 +00:00
Olivier Houchard
cb74d4b2b4 Close the tty file descriptor once we're done with it.
Use O_NONBLOCK when opening the tty device.

Suggested by:   bde
Submitted by:   ru
2005-09-21 14:30:14 +00:00
Ruslan Ermilov
6ed0b39d28 Restore the ability to detach from a tty via SIOCSTTY and document
recent changes in a manpage.

Reviewed by:	cognet
2005-09-19 13:48:45 +00:00
Olivier Houchard
b615d79f9b Open the tty device and pass the fd for SNPSTTY.
MFC after:	3 days
2005-09-18 19:24:05 +00:00
Ruslan Ermilov
59a3c79da6 Sort sections. 2005-01-18 20:02:45 +00:00
Christian S.J. Peron
f8da56fda8 By default, the watch utility will attempt to open /dev/snp0, if
another process already has /dev/snp0 open, the snp(4) will return
EBUSY, in which case watch will try to open /dev/snp1..9. Currently
watch does not check errno to see if the failure was a result of EBUSY.

This results in watch making futile attempts to open snp0..snp9 even
though devices may not exist or the caller does not have permissions
to access the device.

In addition to this, it attempts to setup the screen for snooping even
though it may not ever get an snp device.

So this patch does two things
1) Checks errno for EBUSY, if open(2) fails for another reason
   print that reason and exit.
2) setup the terminal for snooping after the snp descriptor has
   been obtained.

Approved by:	bmilekic (mentor)
2004-08-10 01:49:46 +00:00
Ruslan Ermilov
455fb174df Eliminated double whitespace. 2004-07-03 18:35:53 +00:00
Ruslan Ermilov
07bfccd71e Mechanically kill hard sentence breaks. 2004-07-02 23:13:00 +00:00
Christian S.J. Peron
0f27b90770 Remove constant which makes the assumption that the length of
_PATH_DEV will never change. In the un-likely event that _PATH_DEV
should ever change, watch(8) would have broke because of a
mis-generated device name.

Approved by:	bmilekic (mentor)
Pointed out by:	Yvan Boily
2004-05-29 21:03:00 +00:00
Peter Grehan
5cfe0423e6 Userland signed char fixes for PPC build. Problems were using a char
return for getopt() and comparing to -1, ditto with fgetc() and EOF,
and using the kg_nice value from <sys/user.h>

Submitted by: Stefan Farfeleder <stefan@fafoe.narf.at>
Reviewed by: obrien, bde (a while back)
Tested lightly on: ppc, i386, make universe
2004-01-22 07:23:36 +00:00
David E. O'Brien
b728350ee6 Use __FBSDID over rcsid[]. Protect copyright[] where needed. 2003-05-03 21:06:42 +00:00
David E. O'Brien
052238b16c style.Makefile(5) 2003-04-04 17:49:21 +00:00
Jens Schweikhardt
d64ada501a Fix typos, mostly s/ an / a / where appropriate and a few s/an/and/
Add FreeBSD Id tag where missing.
2002-12-30 21:18:15 +00:00
Thomas Moestl
ba964e50b0 The FIONREAD sysctl operates on an int *, not a size_t *.
Reviewed by:	dd
2002-11-11 10:56:57 +00:00
Mike Heffner
2f92b79ff6 Add break's to case blocks.
PR:		bin/41511
Submitted by:	Daniel Hagan <dhagan@acm.vt.edu>
2002-08-10 08:42:10 +00:00
Philippe Charnier
490d5836b5 The .Nm utility 2002-07-14 14:47:15 +00:00
Warner Losh
48462fb1b7 de __P
ANSI functions
minor knf
2002-06-12 04:28:15 +00:00
Bruce Evans
4c995cc66e #include <time.h> for the definition of time functions instead of
depending on namespace pollution 2 layers deep in <sys/stat.h>.
2002-02-25 05:31:49 +00:00
Dima Dorfman
d3573aab8e Talk about what the user needs to do to get the snp devices, and how
watch(8) will try to help them by loading the module.

PR:		25420
2001-11-24 17:02:58 +00:00
Dima Dorfman
6e2867d22b Change 'superuser' to 'user' which was forgotten in the previous
delta.  Remove fake SCCS id while I'm here.
2001-11-24 16:56:43 +00:00
Dima Dorfman
3278021b94 Remove the sentence about only root being able to run watch(8). It
was never technically true (it's snp(4) that required root, not
watch(8)), and after snp.c 1.64, isn't even effectively true, since
who can run watch(8) depends on the permissions of the snp device(s).

Sort options in SYNOPSIS and DESCRIPTION while I'm here.
2001-11-24 15:51:34 +00:00
Dima Dorfman
1995d3a484 Add an -f option which allows one to specify a snp device to use.
Previously, watch would always use the first device it could
successfully open, but this isn't always desired.  Specifically, it
may not be desired during debugging (of snp), or if a particular snp
device has different permissions (which makes since after snp.c 1.64).
2001-11-24 15:41:38 +00:00
Robert Watson
22f94a0a16 o When "-n" is used with watch, it disables the use of <control-X> to
change terminals being watched.  This change makes watch pass the
  <control-X> through to the terminal if it's not being intercepted--
  previously, the keypress would simply be dropped.
2001-11-07 19:15:19 +00:00
Dima Dorfman
fc66e618b4 Automatically load the "snp" module if it isn't already present. 2001-09-09 14:57:48 +00:00
Andrey A. Chernov
3036a6b85c Back out WARNS commenting - local fault 2001-07-23 12:38:00 +00:00
Andrey A. Chernov
c677c22f8f Unbreak world - comment out WARNS=2 - deadly warning on tgetstr 2001-07-23 10:46:01 +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
Dima Dorfman
8d43ce09fc Add prototypes, staticize, constify, don't shadow global variables and
functions, remove an unused function, and silence other assorted
warnings.

Set WARNS=2.
2001-07-15 11:03:28 +00:00
Jimmy Olgeni
4eba34e8b7 Replace an instance of the "watch" word with the ".Nm" macro: it is used to
specify the command name.
2001-05-04 23:27:30 +00:00
Ruslan Ermilov
345e52e742 - Backout botched attempt to introduce MANSECT feature.
- MAN[1-9] -> MAN.
2001-03-26 14:42:20 +00:00
Robert Watson
a8ee378010 o Strip BINMODE from Makefile. Installing watch with 0500 provides no
added security benefit, as it doesn't provide extra privilege.
  Protection against inappropriate snooping is done by protecting
  /dev/snp* properly.
2001-03-22 04:10:51 +00:00
Ruslan Ermilov
c73e22c3d4 Set the default manual section for usr.sbin/ to 8. 2001-03-20 18:17:26 +00:00
David E. O'Brien
1a37aa566b Add `_PATH_DEVZERO'.
Use _PATH_* where where possible.
2000-12-09 09:35:55 +00:00
Ruslan Ermilov
e97407b4f2 mdoc(7) police: use the new features of the Nm macro. 2000-11-20 20:10:44 +00:00
Philippe Charnier
1e7ae6a9af Add missing .El.
-Wall cleaning.
2000-01-23 20:27:32 +00:00
Alexey Zelkin
840c0de7aa ``tty'' is not required parameter 1999-10-30 14:52:24 +00:00
Peter Wemm
e46b89dc93 Fix warning: return type of main' is not int' 1999-09-15 01:58:44 +00:00
Peter Wemm
97d92980a9 $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
Nik Clayton
414a35e60a Add $Id$, to make it simpler for members of the translation teams to
track.

The Id line is normally at the bottom of the main comment block in the
man page, separated from the rest of the manpage by an empty comment,
like so;

     .\"    $Id$
     .\"

If the immediately preceding comment is a @(#) format ID marker than the
the $Id$ will line up underneath it with no intervening blank lines.
Otherwise, an additional blank line is inserted.

Approved by:            bde
1999-07-12 20:12:29 +00:00
Philippe Charnier
f12a14713b .Sh AUTHOR -> .Sh AUTHORS. Use .An/.Aq. 1998-03-23 08:31:20 +00:00
Philippe Charnier
dc763e50ee Use err(3). 1997-10-27 12:21:10 +00:00
Warner Losh
6c3f552a31 compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.
1997-03-31 05:11:47 +00:00
Bruce Evans
ac89160a93 Removed old bogus prerequisite <sys/select.h>. Cleaned up #include mess. 1997-03-19 04:44:07 +00:00
Ollivier Robert
2bb69a4847 1. change tty handling from sgttyb to termios,
2. fix a potential buffer oflow,
3. makes watch(8) conform to sysexits(3).

Not a strong 2.2 candidate even if it would be nice.

Reviewed by:	joerg, imp
1997-03-13 08:35:45 +00:00
Peter Wemm
476602a9d0 Revert $FreeBSD$ to $Id$ 1997-02-22 16:15:28 +00:00
Wolfram Schneider
bfd34a4a60 Sort cross references. 1997-01-20 00:03:00 +00:00