Fix a selection of bugs, and improve code layout:
- Remove unnecessary and unused local variables.
- Include useful information in error and warning messages.
- Fix the logic for expiring mounttab entries.
- Remove calls to getaddrinfo - the results were not used.
- Simplify some string handling by using snprintf.
- Fix usage.
Rename the -w option to be -W. The recently-added -w option is different
than the long-standing -w option in NetBSD, so change it before anyone in
FreeBSD gets used to it. For now, -w is still accepted, but prints out
some warnings via syslog.
Include the remote hostname in RPC-related warning messages. Exit
immediately if a host specified by the -h flag cannot be parsed
instead of attempting to unmount all NFS filesystems, which was
bad.
Add a missing return statement at the end of checkname(); this
could result in a non-zero exit status in some cases even if the
unmount succeeded.
Group two separate NFS-related operations into one block to make
it more obvious that a variable (hostp) is not dereferenced when
uninitialised. Initialise it to NULL anyway to avoid a warning.
Pass in the read_mtab()'s bogus argument as NULL instead of messing
with a local variable to achieve the same effect. A later commit
will clean up this mounttab interface.
- Allow link-local multicast traffic for client.
- Allow ICMPv6 destination unreach, packet too big and NS/NA.
- RIPng also uses link-local to link-local.
I think this is OK for PC98, someone please check.
As was done to i386/boot_crunch.conf:
+ Build with `lint' defined to cut out some of the `rcsid's (binaries' code
only, the libs will still have the `rcsid's in them).
+ mount_mfs is OBE.
+ Do not need libipx as I have conditionally diked that functional out of
ifconfig(8).
Fix the install kernel on a 1.44MB floppy again.
I had to be aggressively Draconian to succeed.
I diked out:
+ Multia, NoName, PC/EB 64, Aspen Alpine support.
+ SCSI tape support
+ AMI MegaRAID controller support
+ All parallel bus support (includes PLIP)
+ vx (3c590, 3c595), pcn (AMD Am79C97x PCI 10/100), sf (Adaptec AIC-6915),
sis (SiS 900/SiS 7016), ste (Sundance ST201 (D-Link DFE-550TX)),
wb (Winbond W89C840F) support.
If the removal of any of this support causes heartburn, please let me know.
+ Build with `lint' defined to cut out some of the `rcsid's (binaries' code
only, the libs will still have the `rcsid's in them).
+ mount_mfs is OBE.
+ Do not need libipx as I have conditionally diked that functional out of
ifconfig(8).
+ Build with `lint' defined to cut out some of the `rcsid's (binaries' code
only, the libs will still have the `rcsid's in them).
+ mount_mfs is OBE.
+ The Alpha install does not support SLIP, PCCARD or USB installs; so we do
not need the associated userland utils.
+ Do not need libipx as I have conditionally diked that functional out of
ifconfig(8).
Another hangup bugfix from Juha:
Problem 1 is that the config entry hangup flag is zeroed only at
CONNECT_ACTIVE_IND in msghdl.c. If any (other) call is disconnected
after EV_MDO and before CONNECT_ACTIVE_IND, the cleanup routine will
disconnect the in-progress dialout as well, if its hangup flag is
nonzero (which it is likely to be) after the previous incarnation of the
cfg entry. Patch-1 fixes this by clearing the hangup flag as soon as a
cfg entry is reserved for the call.
Fix hangup bug; Juha writes:
Problem 2 is that doing a local hangup (eg. by writing "H" to the
dialout device) to a call which is already disconnected results in isdnd
moving the cfg entry to an illegal state, from which there is no
recovery. This is tricky because there is no way to synchronize local
hangup with the remote end (ie. the callee can always hang up at an
inconvenient time)! Hence, patch-2 alters fsm.c's EV_DRQ state table
such that the local hangup request is processed or ignored in most
states, even for disconnected calls.
Change the foreground mount behaviour so that we keep retrying
forever by default. This matches what mount_nfs did before revision
1.40, and it is the generally expected behaviour for NFS mounts.
Document the current defaults near the start of the man page and
mention the options that can be used to change them.
Add a patch from the isdn mailinglist, Juha writes:
ppp in 4.x apparently does a close(2) after opening the tun device;
i4brunppp starts up with only file descriptors 0 and 1 open (to the rbch
device) -> tun gets opened as 2 -> tun gets closed -> later use results
in EBADF. A quick fix to i4brunppp.c makes the thing work (I know, this
is ugly, but I needed it up quick...):
After being port- and addressscanned continously from several sources where
my line stayed open for more than eight hours i decided to implement a
maximum connection time; see keyword maxconnecttime in the manual page.
Show an example of how to sort a file listing by size. Hopefully this
will reduce the number of people calling for this functionality to be
added to ls(1).
The API for loading tables changed (we no longer explicitly search for the
RSDP, it's now found via a callback).
AcpiOsSleepUsec() went away, use AcpiOsSleep() instead (we could use
AcpiOsStall() too)
AcpiFormatException() was changed to make more sense (it behaves like
our old acpi_strerror() did), so throw acpi_strerror() away (still
#defined in acpivar.h though, we need to sweep these seperately).
mike [Fri, 20 Jul 2001 16:44:44 +0000 (16:44 +0000)]
o Add phantom's gethostinfo() function to reduce duplicated code.
o Increase readability by creating a wrapper for asprintf(3).
o Cast isdigit(3) argument to unsigned char for future locale
changes.
Submitted by: phantom
Reviewed by: -audit, des
Approved by: des
Return consistent key action codes at key press and release
events. Otherwise you would see unexpected results if shift or
locking keys are defined to give different actions depending
on other shift/locking keys' state.
Please keep the ukbd module and the kernel in sync, otherwise
the USB keyboard won't work after this change.
MFC after: 10 days
o Fixed `nfrontp' calculations in output_data(). If `remaining' is
initially zero, it was possible for `nfrontp' to be decremented.
Noticed by: dillon
o Replaced leaking writenet() with output_datalen():
: * writenet
: *
: * Just a handy little function to write a bit of raw data to the net.
: * It will force a transmit of the buffer if necessary
: *
: * arguments
: * ptr - A pointer to a character string to write
: * len - How many bytes to write
: */
: void
: writenet(ptr, len)
: register unsigned char *ptr;
: register int len;
: {
: /* flush buffer if no room for new data) */
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: if ((&netobuf[BUFSIZ] - nfrontp) < len) {
: /* if this fails, don't worry, buffer is a little big */
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: netflush();
: }
:
: memmove(nfrontp, ptr, len);
: nfrontp += len;
:
: } /* end of writenet */
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.
jon [Fri, 20 Jul 2001 06:00:02 +0000 (06:00 +0000)]
Fix setting serial baud rate under ibcs2 emulation by moving a line to the
right place. Reported by Jonathan Chen <jonc@pinnacle.co.nz> (someone with
the same name who's not me)
Implement pthread_attr_[gs]etguardsize(). Non-default-size stacks used to
be malloc()ed, but they are now allocated using mmap(), just as the
default-size stacks are. A separate cache of stacks is kept for
non-default-size stacks.
- `-a' option for IPv6 was not working correctly.
- Lose any stray host bits that a user may have entered when providing
a network number and netmask to the `-a' option for IPv6. This is
corresponding to 1.79 that is for IPv4 only.
mike [Thu, 19 Jul 2001 21:25:10 +0000 (21:25 +0000)]
o Integrate security enhancements from OpenBSD.
- Don't assume environment variable HOME is not NULL.
o Integrate standards compliance from NetBSD.
- Allow -- before the command.
- Blocking SIGQUIT isn't standards compliant.
- Proper exit(3) levels.
- Actually append to nohup.out (as documented and required
by standard) instead of clobbering it.
o Remove some FreeBSD specific access(2) cruft (relating to
incorrect appending).
o Document the fact that two or more instances of nohup can
append to the same file.
o Constify; Staticize functions; Set WARNS?=2
Reviewed by: bde
Approved by: des
Obtained from: NetBSD, OpenBSD
MFC after: 9 days
Since revision 1.40/1.41, the default behaviour for mount_nfs is
to give up after one attempt unless a background mount is requested.
Background mounts would retry 10000 times (at least 7 days) before
giving up.
For some situations such as diskless terminals, an NFS filesystem
may be critical to the boot process, so neither the "try once" nor
background mounts are appropiate. To cater for this situation,
unbreak the -R (retry count) parameter so that it also works in
the non-background case. Interpret a zero retry count as "retry
forever".
The defaults are now "try once" for non-background mounts and "retry
forever" for background mounts; both can be overridden via -R.
Add a description of this behaviour to the manpage.
Limit the device to only one playback channel until I can figure out why
a) newpcm insists on using only the highest number channel available, and
b) the maestro3 driver no longer likes anything above channel 0.
bpf(4) hasn't used a static number of devices for over 2 years now, and
the SYNOPSIS hasn't had an example number of devices since rev 1.2 which
was over 5 and a half years ago, so remove a sentence claiming that the
example in the SYNOPSIS limited bpf to 16 devices.
Blah, fsck_ifs uses `8' for all errors, including that it cannot check
in the background. fsck_ffs uses `5' for when SOFTUPDATES are not set,
and thus background cleaning cannot take place. That seems to [semi-]apply
here. So I don't know what non-zero value to use.
If anyone has an opinion, let me know.