- Don't do longjmp()s from inside a signal handler. Even though I got
things to work the way I wanted, it's bad karma.
- Remember to clear the sa_mask with sigemptyset() before masking signals
when using sigaction() to set up the SIGIO handler.
- Break out of the wait loop in yppush_exit() when the five minute
timeout expires instead of looping around for another pass. If ypxfr
on the other end fails somehow and never sends a response, we don't
want to wait around forever.
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 :-)