161789 Commits

Author SHA1 Message Date
jhb
415adcce72 - Note that if_xname, if_dname, and if_dunit are usually initialized via
if_initname().
- Document if_drv_flags and replace references to IFF_(RUNNING|OACTIVE)
  with references to IFF_DRV_(RUNNING|OACTIVE).
- Complete truncated sentence in the description of if_transmit by copying
  from the description in if_qflush.
- Add missing line breaks for translators.

Reviewed by:	brooks (1)
MFC after:	3 days
2010-01-14 14:43:16 +00:00
jhb
8019b29e4f - Update required headers for namei() to add <sys/fcntl.h> and remove
<sys/proc.h>.
- Add RETURN VALUES and ERROR sections for namei()'s error return values.
- Add a missing link to NDHASGIANT.9.

PR:		docs/142815, docs/142816
Submitted by:	Lachlan Kang (1, 2)
MFC after:	3 days
2010-01-14 14:36:39 +00:00
lulf
8ab7715033 Bring in the ext2fs work done by Aditya Sarawgi during and after Google Summer
of Code 2009:

- BSDL block and inode allocation policies for ext2fs. This involves the use
  FFS1 style block and inode allocation for ext2fs. Preallocation was removed
  since it was GPL'd.
- Make ext2fs MPSAFE by introducing locks to per-mount datastructures.
- Fixes for kern/122047 PR.
- Various small bugfixes.
- Move out of gnu/ directory.

Sponsored by:   Google Inc.
Submitted by:	Aditya Sarawgi <sarawgi.aditya AT SPAMFREE gmail DOT com>
2010-01-14 14:30:54 +00:00
ed
cee9e919b5 The group field is called gid', not group'. 2010-01-14 11:03:26 +00:00
edwin
ee2386e553 Make whois capable of searching for IPv6 addresses just like it can
do for IPv4 addresses without having to explicetly specify that the
ARIN server should be used to get the initial information

PR:		bin/128725
Submitted by:	"Matt D. Harris" <mdh_lists@yahoo.com>
MFC after:	1 week
2010-01-14 10:56:54 +00:00
edwin
ea698e4843 Remove -d option, whois.nic.mil doesn't exist anymore.
PR:		bin/142507
Submitted by:	Dan Mahoney <danm@prime.gushi.org>
MFC after:	1 week
2010-01-14 10:40:54 +00:00
ed
c310e1750a Revert the change to Symbol.map, made in r202274.
Even though we use __sym_compat(), we should list the symbol in
Symbol.map.

ttyslot() is now listed as follows, which seems to do the right thing:

| Symbol table '.dynsym' contains 2755 entries:
|    Num:    Value          Size Type    Bind   Vis      Ndx Name
|    613: 00000000000477b0   121 FUNC    GLOBAL DEFAULT   10 ttyslot@FBSD_1.0

Reported by:	kib
2010-01-14 10:00:01 +00:00
roam
2eceaf9455 Document that the IEEE80211_DEBUG kernel option is needed for
using the wlan(4) debugging controls with wording slightly
different from that in the PR.

PR:		142367
Submitted by:	Matthew Thyer <matt.thyer@gmail.com>
MFC after:	2 weeks
2010-01-14 09:38:23 +00:00
ed
61e4e14b15 Don't use fseeko() to obtain the file offset.
I was a bit confused with lseek(), which returns the new offset. We
should ftello() to obtain it using stdio.
2010-01-14 08:08:55 +00:00
ed
2bf206e001 Add two changes that should have gone into commit r202274.
Phase out ttyslot(3).

  The ttyslot() function was originally part for SUSv1, marked LEGACY in
  SUSv2 and removed later on. This function only makes sense when using
  utmp(5), because it was used to determine the offset of the record for
  the controlling TTY. It makes little sense to keep it here, because the
  new utmpx file format doesn't index based on TTY slots.
2010-01-14 05:37:43 +00:00
ed
c47f4ccef3 Phase out ttyslot(3).
The ttyslot() function was originally part for SUSv1, marked LEGACY in
SUSv2 and removed later on. This function only makes sense when using
utmp(5), because it was used to determine the offset of the record for
the controlling TTY. It makes little sense to keep it here, because the
new utmpx file format doesn't index based on TTY slots.
2010-01-14 05:35:32 +00:00
marcel
47afb8a1a7 Add ioctl requests to /dev/io on ia64 for reading and writing
EFI variables. The primary reason for this is that it allows
sysinstall(8) to add a boot menu item for the newly installed
FreeBSD image.
2010-01-14 02:48:39 +00:00
marcel
109b8dd039 Fix previous commitr:. efi_var_set() was copied from efi_var_get(),
but wasn't actually changed.
2010-01-14 02:38:46 +00:00
marcel
82fc1e77df Add wrappers for the RT Variable Services. While here, translate the
EFI status into a standard errno value and change efi_set_time() to
return a standard error.

MFC after:	1 week
2010-01-14 02:14:21 +00:00
thompsa
271e7e0f72 Grammar nits.
Submitted by:	Ben Kaduk
2010-01-14 01:16:20 +00:00
yongari
4d5d27ed38 Add BCM5754 PHY id that is found on Dell Studio XPS 16.
Tested by:	scf
MFC after:	1 week
2010-01-14 00:36:49 +00:00
delphij
c3bbad32bf o Add PCI ID for BCM 5756.
o Don't enable BGE_FLAG_BER_BUG on both 5722 and 5756, and based
   on their PCI IDs rather than their chip IDs.

Reported by:	several PC-BSD users via kmoore
Reviewed by:	yongari, imp, jhb, davidch
Sponsored by:	iXsystems, Inc.
MFC after:	2 weeks
2010-01-13 22:39:39 +00:00
mav
9b66a3f9fc Hide from default sndstat some information not used on daily basis,
to make it readable by average user with average screen size.
2010-01-13 22:22:16 +00:00
ed
a6d91cab94 Remove the 1000 pseudo terminal limit from pts(4).
Even with the old utmp format, we could in fact go to pts/9999, because
ut_line wasn't guaranteed to be null terminated there.
2010-01-13 21:22:23 +00:00
thompsa
6bc4650616 Update to Fredrik's latest uhso driver. This changes port detection, adds
comments and other code nits.

Submitted by:	Fredrik Lindberg <fli@shapeshifter.se>
2010-01-13 20:54:18 +00:00
ed
c69b7d3b1a Add a missing $FreeBSD$ string.
I was requested to add this string to any file that was modified by my
commit, which I forgot to do so.

Requested by:	des
2010-01-13 20:30:16 +00:00
ed
f431530c4a Complete the migration towards utmpx.
- Add a notice to UPDATING, explaining users may need to recompile
  applications that use the old database.
- Bump __FreeBSD_version.
2010-01-13 19:25:03 +00:00
ed
4f31d2c5a6 Let rc and periodic infrastructure and newsyslog use the utmpx files. 2010-01-13 19:07:48 +00:00
ed
a40e5b0c48 Remove <utmp.h> and its corresponding manual page. 2010-01-13 19:03:48 +00:00
ed
fc12a579a0 Remove login(3), logout(3) and logwtmp(3) from libutil.
These functions only apply to utmp(5). They cannot be kept intact when
moving towards utmpx. The login(3) function would break, because its
argument is an utmp structure. The logout(3) and logwtmp(3) functions
cannot be used, since they provide a functionality which partially
overlaps.

Increment SHLIB_MAJOR to 9 to indicate the removal.
2010-01-13 18:59:51 +00:00
ed
fee8e21b50 Remove utmpx stub from libulog.
I'm not increasing the shlib major version for this, because not a
single application outside the base system should have used these
functions in such a short timespan.

Rewrite ulog_login(3) and ulog_logout(3) to build on top of the utmpx
implementation in libc.
2010-01-13 18:53:06 +00:00
ed
55b15dac03 Forgot a part that was missing in the previous commit.
There is no need to call trimdomain() anymore now that ut_host is big
enough to fit decent hostnames.
2010-01-13 18:46:50 +00:00
ed
495b1a6bbd Make OpenSSH work with utmpx.
- Partially revert r184122 (sshd.c). Our ut_host is now big enough to
  fit proper hostnames.

- Change config.h to match reality.

- defines.h requires UTMPX_FILE to be set by <utmpx.h> before it allows
  the utmpx code to work. This makes no sense to me. I've already
  mentioned this upstream.

- Add our own platform-specific handling of lastlog. The version I will
  send to the OpenSSH folks will use proper autoconf generated
  definitions instead of `#if 1'.
2010-01-13 18:43:32 +00:00
ed
bd3422d93e Let telnetd build without utmp and logwtmp(3).
Just like rlogind, there is no need to change the ownership of the
terminal during shutdown anymore. Also don't call logwtmp, because the
login(1)/PAM is responsible for doing this. Also use SHUT_RDWR instead
of 2.
2010-01-13 18:37:42 +00:00
ed
e846918be8 Let pam_lastlog use utmpx instead of libulog's utmpx interface.
It will still use ulog_login(3) and ulog_logout(3), which will remain
present.
2010-01-13 18:32:31 +00:00
ed
6dd5ce59c1 Port all apps in libexec/ from libulog to utmpx. 2010-01-13 18:28:58 +00:00
ed
a0af351d02 Port ftpd to utmpx.
Unfortunately I have to partially wreck its functionality, though. ftpd
used to keep a file descriptor to the wtmp, which allowed it to work
from within a chroot. The current utmpx implementation doesn't offer a
way to do this. Maybe we can address this in the future, if it turns out
to be a real issue.
2010-01-13 18:28:41 +00:00
ed
14920edb23 Port comsat to utmpx.
It seems comsat stats the utmpx database each 15 seconds to see whether
it has been changed. I am changing this behaviour to look at the utmpx
database upon processing. I don't want to allow direct interference with
the database files. I also wonder whether this optimization has any
measurable performance benefit nowadays.
2010-01-13 18:25:43 +00:00
ed
4215376d31 Remove `dead code' from rlogind.
- It shouldn't call logwtmp(). Applications like login(1) already make
  sure both login and logout entries are written to the storage.
- There's no need to restore permissions on the pseudo-terminal, since
  it should be garbage collected by the kernel.
2010-01-13 18:24:04 +00:00
ed
57d10a6e95 Port all applications in usr.sbin/ from libulog to utmpx. 2010-01-13 18:17:53 +00:00
ed
7297d6b577 Port lastlogin(8) to utmpx.
While there, fix a bug I introduced previously. We must reopen the
database for each username passed on the command line. We must rewind
the database and search from the beginning.
2010-01-13 18:17:12 +00:00
ed
f9e9ecaea9 Port timed away from logwtmp(3). Let it use utmpx. 2010-01-13 18:15:46 +00:00
ed
7b9a82453b Port ac(8) to utmpx.
Similar to last(1), it must compare ut_id's instead of TTYs to determine
whether a session has been terminated. It must also use ut_type to
determine the type of the login record instead figuring it out by
itself.
2010-01-13 18:14:59 +00:00
ed
a618bd1a15 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
7aa5833636 Port w(1) to utmpx.
Let it print "-" when the TTY string is empty. In this case, it must
also make sure it doesn't match processes who also have no controlling
TTY. Otherwise it will print random kernel processes when trying to pick
the best matching process.

Eventually it should look at the value of ut_pid as well.
2010-01-13 18:09:21 +00:00
ed
3ee361c8b5 Allow getent(1) to display utmpx entries as well.
Because getutxent also matches the typical get*ent format of library
routines, I thought it would be a good idea to teach it how to read
utmpx databases. getent(1) just gives a raw dump, which is very useful
when debugging problems related to parsing/logging.
2010-01-13 18:08:00 +00:00
ed
6d64011857 Port last(1) to use utmpx.
Basically there are three major things I changed about last(1):

- It should use ut_type instead of determining by hand what type of
  record was given.
- It should now keep track of ut_id's instead of TTYs. This means the
  ttylist has been renamed to the idlist, storing all the ut_id's it has
  processed until the next reboot.
- I've removed the signal handler. Because our wtmp is rotated so often,
  it makes little sense. Even on a simple piece of hardware it should be
  capable of grinding through megabytes of logs in a second.
2010-01-13 18:06:31 +00:00
ed
3ad23bc14f Let libopie use utmpx instead of utmp. 2010-01-13 18:02:30 +00:00
ed
4f94c734b6 Port the remaining apps in sbin/ to utmpx; only reboot(8). 2010-01-13 17:59:23 +00:00
ed
6998c5b40b Migrate init(8) towards utmpx.
According to a comment, we cannot safely remove utmpx entries here
anymore. This is because the libc routines may block on file locking. In
an ideal world login(1) should just remove the entries, which is why I'm
disabling this code for now. If it turns out we get lots of stale
entries here, we should figure out a way to deal with that.
2010-01-13 17:58:49 +00:00
ed
41d3ef1258 Port everything in bin/ from utmp to utmpx.
date: use libc utmpx routines instead of the ones provided by libulog.
pax:  don't depend on <utmp.h>
2010-01-13 17:56:54 +00:00
ed
e1ca659242 Port ppp(8) to utmpx.
A nice thing about utmpx is that it makes it very easy to log sessions
that don't use TTYs. This is because the file is not indexed by TTY
slots anymore.

Silence from:	brian
2010-01-13 17:54:32 +00:00
ed
1fded7e624 Migrate finger(1) towards utmpx.
It was already ported to use libulog, which makes it simpler now. Be
sure to catch the error returned by setutxdb(). Otherwise it may perform
a lookup on the utx.active database.
2010-01-13 17:50:58 +00:00
ed
521728584f Let csh(1) use utmpx instead of utmp.
csh allows you to monitor the utmp(x) file to monitor certain user
logins. Unfortunately it needs to directly stat() this file. I don't
want to break this module , but eventually it shouldn't do that. The
idea of the getutxent(3) API is to hide file access.

Approved by:	mp
2010-01-13 17:49:35 +00:00
ed
ed79cccfab Implement <utmpx.h>.
The utmpx interface is the standardized interface of the user accounting
database. The standard only defines a subset of the functions that were
present in System V-like systems.

I'd like to highlight some of the traits my implementation has:

- The standard allows the on-disk format to be different than the
  in-memory representation (struct utmpx). Most operating systems don't
  do this, but we do. This allows us to keep our ABI more stable, while
  giving us the opportunity to modify the on-disk format. It also allows
  us to use a common file format across different architectures (i.e.
  byte ordering).

- Our implementation of pututxline() also updates wtmp and lastlog (now
  called utx.log and utx.lastlogin). This means the databases are more
  likely to be in sync.

- Care must be taken that our implementation discard any fields that are
  not applicable. For example, our DEAD_PROCESS records do not hold a
  TTY name. Just a time stamp, a record identifier and a process
  identifier. It also guarantees that strings (ut_host, ut_line and
  ut_user) are null terminated. ut_id is obviously not null terminated,
  because it's not a string.

- The API and its behaviour should be conformant to POSIX, but there may
  be things that slightly deviate from the standard. This implementation
  uses separate file descriptors when writing to the log files. It also
  doesn't use getutxid() to search for a field to overwrite. It uses an
  allocation strategy similar to getutxid(), but prevents DEAD_PROCESS
  records from accumulating.

Make sure libulog doesn't overwrite the manpages shipped with our C
library. Also keep the symbol list in Symbol.map sorted.

I'll bump __FreeBSD_version later this evening. I first want to convert
everything to <utmpx.h> and get rid of <utmp.h>.
2010-01-13 17:29:55 +00:00