Commit Graph

14351 Commits

Author SHA1 Message Date
wollman
99c2eebb28 Print PCB hash miss statistic. 1996-06-05 17:24:33 +00:00
wollman
63e056d1ae Instrument UDP PCB hashing to see how often the hash lookup is effective
for incoming packets.
1996-06-05 17:20:35 +00:00
wollman
b5c184c463 Don't allow trailing garbage after the unit number in ifunit(). 1996-06-05 17:12:41 +00:00
wollman
63dc6bde0f Correct formula for TCP RTO calculation. Also try to do a better job in
filling in a new PCB's rttvar (but this is not the last word on the subject).
And get rid of `#ifdef RTV_RTT', it's been true for four years now...
1996-06-05 16:57:38 +00:00
ache
8f86d5aeb7 Activate collate 1996-06-05 16:41:10 +00:00
dyson
6f64e94d55 I missed a case of the page table page dirty-bit fix. 1996-06-05 06:36:21 +00:00
wpaul
f5e325015a Whoops: dragged along an extra copy of the protocol
definition file by mistake. This isn't needed so long
as the one in include/rpcsvc is installed.
1996-06-05 06:15:07 +00:00
wpaul
7afc912575 Added support for in-place updates:
If rpc.yppasswdd is invoked with the -i flag, password changes will
be made to the master.passwd template file and the hash map files
in-place, which means it won't have to run a complete map update.
Instead, it calls /var/yp/Makefile with the 'pushpw' target, which
just pushes the maps to the slaves and runs yp_mkdb -c to tell the
local ypserv to flush its database cache.

The server will check the passwd.byname and passwd.byuid maps to see
if they were built in 'insecure' or 'secure' mode (i.e. with real
encrypted passwords in them or without) and update them accordingly.

This combined with rpc.ypxfrd greatly reduces the amount of time it
takes to complete an NIS password change, especially with very large
passwd databases.
1996-06-05 06:13:09 +00:00
wpaul
8bff27f555 Update to pass new arguments now expected by the yp_dbwrite routines.
No functional changes.
1996-06-05 05:46:20 +00:00
wpaul
cfa9db5160 Add support for rpc.ypxfrd and document it in the man page.
Also generallize the yp_dbwrite functions a little: allow the caller
to specify certain flags. I need this mostly for some changes to
rpc.yppasswdd to allow in-place updates.

Also change Makefile a little to use the same format as ypserv.
1996-06-05 05:42:52 +00:00
nate
d197dcd271 Minor formatting changes. No functional differences, but makes the
style more consistant with KNF and the Nomad release.
1996-06-05 05:30:09 +00:00
wpaul
705e40a87b Add rpc.ypxfrd. 1996-06-05 05:23:59 +00:00
phk
93541c4bd1 Add pccard to makefile system 1996-06-05 04:40:41 +00:00
phk
6a8a486164 Add BINDIR 1996-06-05 04:39:34 +00:00
wpaul
a32aea0154 This commit was generated by cvs2svn to compensate for changes in r16125,
which included commits to RCS files with non-trunk default branches.
1996-06-05 04:36:55 +00:00
wpaul
d6af1e1716 Import rpc.ypxfrd.
This server impliments an RPC-based file transfer protocol that allows
an NIS slave server to copy a raw map database file from an NIS master.

The goal here is to speed up the transfer of very large maps. If you
have, for example, an NIS password database with 30,000 records in it,
it can take around 8 to 10 minutes to regenerate it (four hash databases
are created). As it stands now, ypxfr(8) transfers a map by sucking all
the records from ypserv(8) on the master using yp_all() and writing them
to a new database using the db(3) library. This adds up to another 8 to 10
minutes, per slave. With as the number of slaves increases, this latency
becomes prohibitive.

With rpc.ypxfrd, all the slave has to do is copy the already-built
hash database file from the master and move it into place. Even with a
multi-megabyte file, this reduces the master to slave transfer time
to well under a minute. (This is using TCP.)

Access restrictions are applied using the same mechanism as in ypserv:
you can control access using /var/yp/securenets, and the server will
not transmit the master.passwd.* maps unless the transfer request originates
on a reserved port.

Note: this server is based on my hastily contrived protocol and is _NOT_
compatible with Sun's protocol of the same name. It can't be compatible
for a couple of reasons. For one thing, Sun's protocol has not been published
anywhere that I know of. It is not included in any of the SunRPC source
distributions that I've been able to find. Second, Sun's NIS v2 code
uses old style ndbm maps while FreeBSD uses Berkeley DB. The file formats
are incompatible, so being able to transfer maps between FreeBSD and SunOS
hosts wouldn't do any good anyway. (You could always port the FreeBSD NIS
code to SunOS if you really wanted to do it. :)

(There's also the little fact that SunOS/SPARC is big-endian and FreeBSD/i386
is little-endian. Berkeley DB can handle byte ordering differences; ndbm
probably can't.)
1996-06-05 04:36:55 +00:00
wpaul
1ef72ddf2b Add ypxfrd.x so that the XDR routines for this protocol will be built
into librpcsvc.
1996-06-05 03:54:43 +00:00
wpaul
288efe6c2f Now that Peter has been nice enough to bail me out of my last little
mishap, it's time to have the Makefile install ypxfrd.x and ypxfrd.h.
1996-06-05 03:47:18 +00:00
dyson
7bd5766700 Keep page-table pages from ever being sensed as dirty. This should fix
some problems with the page-table page management code, since it can't
deal with the notion of page-table pages being paged out or in transit.
Also, clean up some stylistic issues per some suggestions from
Stephen McKay.
1996-06-05 03:31:49 +00:00
wpaul
3f604024c1 (I hope I'm doing this correctly.)
Import a my own little ypxfrd protocol. Note that this protocol is
_NOT_ the same as Sun's, which is proprietary.

This basically impliments an RPC-based file transfer protocol which
lets a slave server suck over a raw map database file from the master.
This is many times faster than the normal method, which requires reading
the records from ypserv via yp_all() and then creating a new database
on the fly, particularly when you have many tens of thousands of
records in a map (e.g. a huge passwd database).

The protocol number I chose falls within the 'user-specified' range.
Maybe we should register it with Sun so we can get an official vendor
number for it. :)
1996-06-05 02:42:33 +00:00
wpaul
30540346c1 This commit was generated by cvs2svn to compensate for changes in r16119,
which included commits to RCS files with non-trunk default branches.
1996-06-05 02:42:33 +00:00
wpaul
cf31622e83 Makefile.yp:
- Add a 'pushpw' target that only yppushes the various passwd maps
  and sends a YPPROC_CLEAR to the local ypserv. This will be used by
  rpc.yppasswdd once I merge in the in-place update changes.

yp_access.c:

- Make the yp_access() function print RPC program and procedure numbers
  that it doesn't know about in literal form. This will allow it to work
  with other prgrams that it doesn't know about, like rpc.ypxfrd I'm going
  to import shortly.

yp_dblookup.c:

- Take out the __inline keywords. They weren't really helping me anyway.

- Somehow I broke yp_next() when DB_CACHE wasn't #defined. Fix it.

- Also fix potential case where yp_next() might loop forever; make sure
  it checks the return values of all the (dbp->seq)()/R_NEXT calls that
  it does as well as comparing keys.
1996-06-05 02:01:31 +00:00
jraynard
f12d02958a Submitted by: (based on code in "Advanced Programming in the Unix Environment"
by W.Richard Ste vens. EINTR handling suggested by bde@freebsd.org).

Code cleanup:

1. Add missing return type.
2. Replace 'union wait' by int.
3. Use Posix-style signal handling instead of signal().
4. Use fork() instead of deprecated vfork().
5. Block signals before fork()'ing, instead of after.
6. Return -1 if fork() fails, instead of 0.
7. Add EINTR handling for waitpid() call.

Also add claim of Posix conformance to man page.
1996-06-05 00:08:54 +00:00
nate
01b73f855a Bring in changes from if_ep.c for PCCARD driver.
Properly determine the offset of the remaining bytes we need to transfer
after outsl'ing all the long words we can during transmission in 32bit mode.
1996-06-04 21:41:01 +00:00
phk
014ac3e0f6 Install pccard includes. 1996-06-04 21:30:35 +00:00
jfieber
71c5c555bf Upgrade from 1.1 to 1.1.91. Unknown to me, the latter version was
actually available at the time I brought in the former.
Lots of assorted bug fixes and much needed support for catalogs.
1996-06-04 19:09:50 +00:00
nate
dc83deeffb Freudian slip. Change M_DEVBUG -> M_DEVBUF.
Submitted by:	 "Stephen F. Combs" <combssf@salem.ge.com>
1996-06-04 17:50:28 +00:00
nate
9fcfad930b Fix typo. in the APM_DSVALUE_BUG code that I missed.
Obtained from:	Someone on the mailing list (sorry, I forgot who)
1996-06-04 17:37:46 +00:00
jraynard
9f903bbfff Code clean up:
Changed type of pid from int to pid_t. (Missed one!)
1996-06-04 17:35:15 +00:00
pst
74a5089a8d Pass in both username and file to jkfprintf 1996-06-04 15:42:09 +00:00
gpalmer
f41bdecc32 Close a file descriptor leak. Possibly closes PR #1212 1996-06-03 21:35:21 +00:00
sos
4ef8e1cd88 Added missing CR0_NW define for Cyrix 486DLC support. It's still not
stable on my hardware, but its better... *sigh*

Obtained from: NetBSD
1996-06-03 19:37:38 +00:00
jdp
cd913c001e Fix a bug in the handling of the "persist" state which, under certain
circumstances, caused perfectly good connections to be dropped.  This
happened for connections over a LAN, where the retransmit timer
calculation TCP_REXMTVAL(tp) returned 0.  If sending was blocked by flow
control for long enough, the old code dropped the connection, even
though timely replies were being received for all window probes.

Reviewed by:	W. Richard Stevens <rstevens@noao.edu>
1996-06-03 15:37:52 +00:00
jfieber
ca4dbe0a3e Append a * to the model field of the Archive Viper quirk entry.
Without the wildcard, the drive would never match the entry.
Also add a comment describing how matching takes place to help avoid
problems like this.
1996-06-03 14:25:11 +00:00
jfieber
3fb9ff7e6c Fix incorrect handling of .cxx files in default rules. 1996-06-03 13:26:16 +00:00
jraynard
c64e4011c6 Code clean up:
Changed type of pid from int to pid_t.
1996-06-03 13:19:10 +00:00
jraynard
8867615c04 Code clean up:
Added missing headers for system functions.
1996-06-03 13:16:53 +00:00
joerg
c4eedb196e Add a prototype for ftok(). Doesn't really belong into a <sys/...>
file, but this used to be historical practice.

Submitted by:	fhackers@jraynard.demon.co.uk (James Raynard)
1996-06-03 10:42:30 +00:00
joerg
a320139a35 Minor corrections. The second parameter is actually of type int
(though only char will be used), and our implementation is not really
worse than the SysV one, so there's no need to claim so in the BUGS
section.
1996-06-03 10:40:39 +00:00
jkh
ef88bf5901 fix PR#599
Submitted-By: jdp
1996-06-03 04:40:43 +00:00
dyson
53d543bdd7 Fix an error when B_MALLOC buffers are returned from the cluster read
code without the B_READ flag being set.  This is a problem when the
data is not cached, and the result will be a bogus attempted write.
Submitted by:	Kato Takenori <kato@eclogite.eps.nagoya-u.ac.jp>
1996-06-03 04:40:35 +00:00
dg
dc263de995 Use kmem_alloc_wait/kmem_free_wakeup() to avoid allocation failures
from running out of string space in the exec_map.
1996-06-03 04:12:18 +00:00
dg
fc1107cd11 Fix declaration of ps_strings. 1996-06-03 04:09:36 +00:00
asami
d1ea4ae39d Add Andrew V. Stesin (stesin@elvisti.kiev.ua) and Peter Stubbs
(PETERS@staidan.qld.edu.au) for their wonderful port of squid.
1996-06-03 02:29:38 +00:00
bde
df8d0485a1 Backed out yacc changes. 1996-06-03 01:56:05 +00:00
jraynard
229375de35 Update reference to the 4th edition of this fine book. 1996-06-03 00:37:41 +00:00
alex
5c1e86ebb4 Code cleanup: remove unused variables, use correct *printf format
specifiers (some unsigned values were printed as signed, some longs
were printed as ints), and place parentheses around assignments in
if statements.
1996-06-02 23:19:12 +00:00
dyson
256d4f51af Don't carry the modified or referenced bits through to the child
process during pmap_copy.  This minimizes unnecessary swapping or creation of
swap space.  If there is a hold_count flaw for page-table
pages, clear the page before freeing it to lessen the chance of a system
crash -- this is a robustness thing only, NOT a fix.
1996-06-02 22:28:53 +00:00
gpalmer
7ff6b86884 Use setreuid instead of seteuid for permissions management 1996-06-02 19:59:26 +00:00
joerg
497410092f Be slightly more verbose during configure() in the bootverbose case.
This breaks the long silence after the ``npx0'' message and allows to
track some of the problems regarding the root f/s decisions.
1996-06-02 18:58:39 +00:00