jhb [Thu, 6 Jun 2002 19:04:38 +0000 (19:04 +0000)]
Handle "dead" witnesses better in the situation of several short term locks
being created and destroyed without a single long-term one around to ensure
the witness associated with that group of locks stays alive. The pipe
mutexes are an example of this group. For a dead witness we no longer
clear the witness name. Instead, when looking up the witness for a lock,
if a dead witness' (a witness with a refcount of 0) w_name pointer is
identical to the witness name of the lock then we revive that witness
instead of using a new witness for the lock. This results in far fewer
dead witness objects and also better preserves locking orders over the long
term resulting in more correct lock order checking. Note that we can't
ever derefence w_name of a dead witness since we don't know if the string
it is pointing to has been free()'d or kldunload()'d out from under us.
jmallett [Thu, 6 Jun 2002 18:04:46 +0000 (18:04 +0000)]
As per behaviour on SVR4 systems, to allow any desirable type of header in the
override, seperate by comma (',') only, rather than any type of whitespace
(the literal space character (' ') had already been removed from this list).
This allows things like:
miamivice# ps -opid='Process
> Identifier'
Process
Identifier
1350
1445
1450
ache [Thu, 6 Jun 2002 13:44:14 +0000 (13:44 +0000)]
Back out rev 1.19 because
1) It breaks uniq for real life languages when "substitute" directive used in
the collating table.
2) It breaks uniq usage in tool chain with other localized utilities which
use collate.
3) To follow LC_COLLATE it is directly allowed for uniq
by POSIX P1003.1 Draft7 (7.3.2). It means that rev 1.19 gains no additional
POSIX conformance.
obrien [Thu, 6 Jun 2002 03:36:32 +0000 (03:36 +0000)]
Implement "-mno-align-long-strings" which prevents pessimization of strings
for space. -Os could do this, but it was easy to hack an MD version.
This saves a whole 32 bytes in boot2, so I think it is worth using it.
(keep how much worse gcc 3.2 will compile boot2...)
obrien [Thu, 6 Jun 2002 03:28:49 +0000 (03:28 +0000)]
Fix excessive alignment for the aout case, and unbreak genassym for that case.
Our aout linker has alignment hacks and doesn't need gcc to do anything special.
bde [Thu, 6 Jun 2002 00:35:07 +0000 (00:35 +0000)]
Fixed overflow in the bounds checking in dscheck(). It assumed that
daadr_t is no larger than a long, and some other relatively harmless
things (*blush*). Overflow for subtracting a daddr_t from a u_long
caused "truncation" of the i/o for attempts to access blocks beyond
the end of the actually cause expansion of the i/o to a preposterous
size.
archie [Wed, 5 Jun 2002 23:32:56 +0000 (23:32 +0000)]
Fix bug where an mbuf was being written to without checking M_WRITABLE().
Eliminate some of the unnecessary complexity of ng_ether_glueback_header().
Simplify two functions a bit by doing the NG_FREE_META(meta) earlier.
des [Wed, 5 Jun 2002 21:25:33 +0000 (21:25 +0000)]
During buildworld, "regular" libraries are built before crypto stuff, so
libfetch can't depend on lib{crypto,ssl}. Move the dependency to fetch
until we can figure out how to fix this.
rwatson [Wed, 5 Jun 2002 20:21:40 +0000 (20:21 +0000)]
Slightly modify the UPDATING text to indicate that -gstabs+ is a gcc
flag to replace -g. This works around slight obtuseness in the developer.
(me :-).
gibbs [Wed, 5 Jun 2002 19:00:02 +0000 (19:00 +0000)]
Allow DB_SET() to set all fields in the ddb command structure. This
allows external ddb commands to do anyting an internal command can
do, including non-standard argument parsing if desired.
kbyanc [Wed, 5 Jun 2002 18:29:26 +0000 (18:29 +0000)]
Use calculated column widths for the routing table display when -W is
supplied rather than arbitrarily larger widths. This (almost) guarantees
that no columns will be truncated (routing table additions between the
width calculation and display passes may create a row with column widths
larger than those calculated).
des [Wed, 5 Jun 2002 12:19:08 +0000 (12:19 +0000)]
Wrap everything in struct connection, and enforce timeouts everywhere
(except for DNS operations). Always use funopen() for HTTP, to support
both timeouts and SSL.
des [Wed, 5 Jun 2002 10:05:03 +0000 (10:05 +0000)]
First step towards SSL support: wrap connections in a 'struct connection'
which contains the socket descriptor, the input buffer and (yet unused)
SSL state variables. This has the neat side effect of greatly improving
reentrance (though we're not *quite* there yet) and opening the door to
HTTP connection caching.
This commit is inspired by email conversations with and patches from
Henry Whincup <henry@techiebod.com> last fall.
iedowse [Wed, 5 Jun 2002 08:11:28 +0000 (08:11 +0000)]
Oops, unbreak parsing of the `type' field in getasciilabel(). I had
changed a `goto' to a `continue' in revision 1.52, but it continued
the wrong loop.
jmallett [Wed, 5 Jun 2002 02:01:46 +0000 (02:01 +0000)]
A space cannot be a header string seperator it appears given the SUSv3
description of ps(1), which uses them. I question whether newline and tab
can be either, but I'm not touching them. Yet.
jmallett [Wed, 5 Jun 2002 01:36:30 +0000 (01:36 +0000)]
Returning NULL here if malloc(3) fails is silly, at this point in the codepath
we have't malloc(3)'d nearly as much as we probably will, so errx(3) away,
instead of waiting for something to fail yet again later on.
jmallett [Wed, 5 Jun 2002 01:33:54 +0000 (01:33 +0000)]
Remove an XXX comment that seems to be a tiny bit no longer pertinent. This
function seems to do the right thing, and is not a "stub", and whoever "marc"
is, he's had plenty of time to do "the real one", so don't wait around for
him any longer.