ppp based on these patches for about 3 weeks with no downtime.
The original submitters comments:
Two features iijppp has over kernel ppp that I like are predictor1
compression and demand dialing. Here are a few bug fixes.
I expanded the priority queueing scheme and discovered it was broken
due to the assignment at ip.c line 300. All packets were being
queued at the same priority.
Fixing priority queueing broke predictor1 compression. Packets
were compressed before being queued and predictor1 worked as long
as the packets were popped off the queue in the same order they
were pushed onto the queue.
There were a few byte order problems in IP header tests also.
There is a recursion problem in SendLqrReport(). LcpClose() is
called when "Too many echo packets are lost" which winds up in
SendLqrReport() again. I believe the original intention was to
just stop the LQR timer with the call to StopLqr() but the side
effects hurt.
Submitted by: John Capo <jc@irbs.com>
require kmem access. It is currently configured to call getloadavg(3),
which uses sysctl(2) to determine the load average, which is the
only reason some sendmails require kmem access.
from args, e.g. cdplay cd0 "play 1 99" if you just want to feed the
CD a command and exit the cdplay utility. Note that if you want to use
post-play commands like `pause' and `resume', you should still use cdplay
interactively.
1) correct MAX_PID according to system definition.
2) replace fprintf(stderr,...)/perror/exit by 4.4 equivalence.
3) make strings enough larger so they can't overflow: MAXHOSTNAMELEN for
host and MAXPATHLEN for filenames.
4) call execl with correct parameters (compress -> gzip).
This program does what the old one did, PLUS:
- Supports parallel jobs (like the SunOS yppush)
- Does everything in one proces instead of fork()ing off
children processes as callback listeners (this is done
using async socket I/O).
- Can be used to transmit maps to user-specified hosts.
- Has a much more verbose verbose option.
- Reuses existing code from ypserv and ypxfr.
- Uses some rpcgen-erated code as well.
- Isn't fattening. :)
Note that this is going in /usr/sbin rather than /usr/bin like
the old one. yppush is an administrative command it it's anything.
In yp_server.c:
- Modify ypproc_xfr_2_svc() so that it sends both a return status and
a yppush callback (if necessary: normally ypxfr is supposed to send the
callback once it's done transfering a map, but if we can't get ypxfr
off the ground for some reason, we have to send it here instead) and
do it in the right order: have to send the reply to the ypproc_xfr
request first, then send callback. This requires us to cheat a bit:
you're supposed to just return() and let the RPC dispatcher send
the reply for you, but we wouldn't be able to send the callback message
if we did that, so we have to call svc_sendreply() ourselves, then
send the callback, and then return NULL so that the RPC dispatcher
won't call svc_sendreply() itself.
- Also modify ypproc_xfr_2_svc() so that it doesn't invoke ypxfr with
the -f flag: this overrides the order number checks, which prevents
us from ever refusing maps that aren't newer than then ones we already
have.
In yp_access.c:
- Fix a typo in the TCP_WRAPPER support code (which is #ifdef'ed out
by default): a close paren somehow vanished into the ether.
added "#define PRECISE_SYMLINKS" to the amd config header - this
solves a problem with the amd "-type:=direct" mounts and /bin/sh
giving a "readlink failed" if you cd'ed to a "-type:=direct" mounted
directory
i got this from david mazieres as a result of giving him our (mostly
doug rabsons) fixes for the amd "-type:=direct" mounts and telling
them (also some NetBSD people were interested) about my only problem
running these fixes (which is now solved too :-)
This will make FreeBSD boxes better behaved 'MBONE Citizens', based on
a couple of the comments about the severity of fixes..
Agreed to by: wollman, fenner@parc.xerox.com
conflict markers, but it actually changes nothing.
We've been running this code with small changes for some time, this may
be useful for checking what those changes. It was unfortunate this
module got so far away from the vendor branch (whitespace changes didn't
help)
imported the newsyslog command from NetBSD - it make the "rotation" of
the logfiles much simpler (it is currently done by "hand" in the
/etc/[daily,weekly,monthly] scripts) - now it will be done by invoking
newsyslog every hour which is very customizable via a
/etc/newsyslog.conf file
Document /var/log/sup.rename instead of the old name
Couple of lib build cleanups (like, not installing the library, and clean
all files)
It should be safe now.. :-)
looking at a high resolution clock for each of the following events:
function call, function return, interrupt entry, interrupt exit,
and interesting branches. The differences between the times of
these events are added at appropriate places in a ordinary histogram
(as if very fast statistical profiling sampled the pc at those
places) so that ordinary gprof can be used to analyze the times.
gmon.h:
Histogram counters need to be 4 bytes for microsecond resolutions.
They will need to be larger for the 586 clock.
The comments were vax-centric and wrong even on vaxes. Does anyone
disagree?
gprof4.c:
The standard gprof should support counters of all integral sizes
and the size of the counter should be in the gmon header. This
hack will do until then. (Use gprof4 -u to examine the results
of non-statistical profiling.)
config/*:
Non-statistical profiling is configured with `config -pp'.
`config -p' still gives ordinary profiling.
kgmon/*:
Non-statistical profiling is enabled with `kgmon -B'. `kgmon -b'
still enables ordinary profiling (and distables non-statistical
profiling) if non-statistical profiling is configured.
- Add a ypxfr_callback() function that we can use to signal failure to
yppush(8) in the event that we can't fork()/exec() ypxfr(8). yppush
only checks the return status from YPPROC_XFR enough to determine
that the RPC succeded: it relies on its callback service to figure
out whether or not the transfer actually worked.
- Give yp_dblookup.c its own debug variable (ypdb_debug) so that DB
access debugging messages can be turned on or off independent of the
program's global debug messages.
- Have the Makefile rpcgen the ypushresp_xfr_1() client stub for us and
nuke the unneeded rule for yp_xdr.c that I left in by mistake (the XDR
filters live in libc now).
equivalent to the old ypserv, except that it doesn't support the
-p [port] option to force the server to use a particular port.
The server stubs and yp.h header file are auto-generated from the yp.x
protocol definition file. The auto-generated XDR routines in libc/yp
are also used. The database access code has been broken out into a
seperate module so that other NIS utilities (ypxfr in particular)
can use it.
Note that the old mknetid script is being temporarily moved here; it
will be replaced by an mknetid program which will eventually have
a home under /usr/src/libexec. (The existing script is actually
somewhat broken -- it doesn't handle hosts -- but this isn't a big
deal at this point since the netid.byname map is really only useful
fopr Secure RPC, which we don't have yet.)
guys to a watched process. Useful if you're monitoring someone who's
started doing something you'd really like them to stop immediately. :)
Suggested by: Phillip White <philw@megasoft.tic.ab.ca>
spamming of the argv, almost back to the original code (except for NULL
padding of the string).
This makes this version of the sendmail source compile on 2.1.X again.
the argv array, causing parts of the argv[0] to be picked up several times
by libkvm, causing strange ps results for the nfs-server and nfs-master
processes.. :-]
(How many copies of setproctitle() do we need anyway? NetBSD has it in
libc and BSDI have it in libutil.)