- 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).
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).
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.)
Note that this code is dormant unless the options files exist.
Also, parsing of quoted options in the config files is improved.
What this allows, is all the options in LINT to be specified to be
configured as #defines in a file rather than on the CC command line at
kernel build time. This means that 'make depend' will catch dependencies
on actual *options*, meaning that you can run 'config' and 'make depend'
in complete safety WITHOUT removing the compile directory each time.
Unfortunately, this requires a pass over the source to get the individual
files to #include the new .h files that would be generated by config.
This has a small compile time penalty (appears up to about 2% slower)
from a "fresh" build. Of course, you should not be needing to do complete
rebuilds very often once this was completed, so it would be an overall
win for most people.
Since this code is dormant and we've got a lot of other things happening
on the kernel tree at the moment (prototypes, devfs, static declarations
etc) I am not planning on doing any changes to activate this feature just
yet.
sendmail mailing list. Our /etc/rc will be fixed instead.
It seems sendmail becomes more and more incompatible, f.e.
Return-Receipt-To not works anymore :-(
>From jhay@mikom.csir.co.za Mon Dec 4 09:48:12 1995
Subject: Yet another IPXrouted fix
I think these should
should make IPXrouted fairly stable. These last problems only showed when
we had more than one route of the same cost to a net.
This will fix some endless loops in the clone code.
John
--
John Hay -- John.Hay@csir.co.za
Sigh, I really hate this "feature". I'm tempted to comment the test out
(like in sendmail 8.6.xx), especially since we log the info in the
Received: header line anyway.. Doing it like this only makes it painful
for things like uucp..
turn off the read data block timeouts. This was inspired by the same fix
in sendmail-8.7, but the code in this area is somewhat different. (8.7
is much more sensible). This will stop the infamous
"timeout waiting for input during message body read" on long running jobs,
eg: /etc/daily | mail root.
`interesting' feature of syslogd turned up. It calls getbootfile() for each
log entry. Since the kernel makefile now changes kern.bootfile when doing
a 'make install', it's quite startling to see the syslog lines change.
This change makes it call getbootfile() once at startup and cache it,
saving a syscall per loop, and keeping something a little more asthetically
pleasing in /var/log/messages...
Here is some patches to IPXrouted. It does the following:
Always use the sap port in the destination address of sap broadcasts.
Clear the host part of network addresses so that routes will really
be deleted in the kernel.
rather out of date.. it even suggested that it was ppp-2.1.1 still :-)
I've selected some bits from the README files and pre-pended it so that
at least reading it tells you _something_ about the recent history.
o Caution against use of `W' options in label/partition screens (dangerous!)
o Make various types of debugging dreck conditionalize on DEBUG flag
o Make a fake /var/db/mountdbtab file so new system doesn't complain
o Apply uniform permissions to entire /usr/X11R6 tree.
o Set erase character to ^H for all interactive commands.
o Don't panic if user exits upgrade shell, reboot.
o Document dangers of `W' options in help screens also.
Since msdosfs is part of the base system, it's not wise to rely on
something like mtools to provide this functionality.
This utility is the agreed fix for PR # misc/804 fdformat did not ...
or "defaultroute"... That's forgivable I guess, but the silly thing
didn't have any way to _enable_ the options either! :-(
This now enables them by default.
Obtained from: ppp-2.3a0
1. Fix the bogon I introduced that made some root filesystems fail to be
made with `unable to make filesystem on sd1s1a' or some such error
message.
2. Latest installment in the never-ending chapter on making FTP do the right
thing on a cruel internet.
3. Make `express install' a truly express install and split off what it used
to do into a `novice install' that's even more geared to the novice
by asking questions in order, rather than forcing them through the menu
interface.
4. Make anonymous FTP setup truly DTRT.
5. Build lndir directly into sysinstall and make the novice install offer
to set up the ports tree. Also make the ports setup truly explanatory
about what it's doing, and always link the ports destination to /usr/ports
if necessary so that bsd.port.mk doesn't need to be tweaked.
This causes:
1: inetd to clear it's getlogin() name at startup (in case the sysadmin
logged in and su'ed to root and restarted inetd)
2: inetd to start each spawned process in it's own session.
3: inetd to call setlogin() on non-root processes (eg: uucp for uucico)
4: log failures more extensively
This means that root spawned processes from inetd remain responsible for
setting their login name if they change their uid. (eg: rshd, login, etc).
If they do not do so, it is safer for them to have no "login name" than a
wrong one (like "root") because the getlogin() system call is documented
as "secure" on 4.4BSD. inetd when started from /etc/rc would have no login
name anyway, so this isn't really a change - it's making it consistant with
the bootup state...
The setsid() change *may* cause something to break that is doing a setsid()
itself and checking the result - it will fail now because it's already been
done. The consensis seems to be that this is unlikely. David G. thinks
this is acceptable as it is cleaner from an architectural point of view.
patches to merge the two IPX packages to work with each other and to
not break make-world :)
IPXrouted should be working now, (or at least compiling) :)
Submitted by: john Hay (John.Hay@csir.co.za)
John's IPXrouted..
this has not yet been seen to run correctly with Mike's IPX/SPX
code (he has his own)
bringing them both in is the first step in merging the two packages
for 2.2
o Lots of documentation fixes.
o Rename FTP active to "FTP" and explain passive mode better.
o Make tcpip screen a bit more friendly.
o Literally dozens of nits.
There are some important bugfixes here, but nothing earth-shattering.
In particular, the Lame Delegation detection is massively sped up, meaning
that a lame server can be given up on in a few seconds, rather than taking
75 seconds. This will be a big win for large mailing list machines,
eg: freefall.
Note: this is a remote cvs import... Backups have been made.. :-)
Obtained from: Paul Vixie <paul@vix.com>
2. Fix an infinite recursion bug in FTP retry. Tricky, this FTP install!
3. Add messaging routines for scripts.
4. Fix yet more bogons. I think I'm fixing them faster than they're growing,
but it's hard to say. I'm really glad we're throwing this code away for
2.2!
don't bogusly restore the screen to the message that was the cause of the
abort. That resulted in lots of weird flickering dialog boxes that appeared
to be displayed out of sequence.
that the FTP install doesn't deal with timeouts and hasn't since it was
written. Fixed.
2. Totally eliminate the OptionFlags. I only had to work harder to
sync them with configuration variables, so why not simply always use
configuration variables? This has actually greatly simplified areas
of the code.
o Implement the 2.0.5->2.1 upgrade procedure (gah).
o Bring in Coranth's support for configuration of anon ftp and Samba
plus some changes of my own.
o More attempts to actually write the documentation in english.
o Update docs to contain more 2.1-centric information.
I'm really, truly using it). Allow distribution fetch to get .info
files from the root.flp OR the distribution in question, allowing us
to add flexibility to the scheme. At some point, perhaps soon, the
cached copy should probably go away entirely!
Merge today's work.
Now support an attributes file loaded at startup (true front-loaded install).
Add fuller debugging support to all device I/O routines.
Lots-o-bug fixes.