Compare commits

...
Author SHA1 Message Date
cvs2svn 2cbfdf51d8 This commit was manufactured by cvs2svn to create tag
'RELENG_2_1_5_RELEASE'.
1996-10-06 07:58:04 +00:00
Jordan K. Hubbard 231387f437 Merge 1996-07-16 17:34:39 +00:00
Jordan K. Hubbard d37ec9d43f Might as well update the handbook while I'm at it - some sections have
been added.
1996-07-16 16:01:35 +00:00
David Greenman 91506762c9 Ported the 3Com 3c590/3c595 driver from -current to -stable (for 2.1.5).
Done against my better judgement, but at least we won't be sued for false
advertising. Sigh.
1996-07-16 08:53:21 +00:00
David Greenman 7ef6b908ff Woops, one change snuck in that I wanted in a seperate commit... 1996-07-16 08:47:09 +00:00
David Greenman 270dbb52f8 Add forgotten fxp0 entry. 1996-07-16 08:45:52 +00:00
David Greenman ccc6f7bfcd Add forgotten fxp0 entry. 1996-07-16 08:44:57 +00:00
David Greenman 79bfcc2d22 Back out that last patch since it is causing people's cards to hang. 1996-07-16 00:15:17 +00:00
Jordan K. Hubbard 91e01093ad Bring over to 2.1-stable branch, to be tagged into RELENG_2_1_5_RELEASE
as soon as Peter sees this. :-)  Peter:  Another problem:  There were
two files modified in -current; installUpgrade.c and label.c.  Of the two,
only label.c is branched properly (re: our earlier conversation with apache.c).
I don't know what effect this has, if any, but just FYI..
1996-07-14 01:57:49 +00:00
Peter Wemm f77743a7ad Bump REVISION to "2.1.5" and BRANCH to "RELEASE" in preperation for 2.1.5
tree tagging.

Reviewed by:	davidg
1996-07-13 14:29:13 +00:00
David Greenman 9cd782cad9 Brought in fix from rev 1.50: enable transmit complete interrupt. 1996-07-13 10:51:10 +00:00
Jordan K. Hubbard b69605d8fa Mergosity. 1996-07-13 05:52:02 +00:00
Jordan K. Hubbard 964edc739b Mergicate. 1996-07-13 05:45:41 +00:00
Jordan K. Hubbard 56c1874f21 Mergitate. 1996-07-13 05:14:52 +00:00
Jordan K. Hubbard 513b4d54e0 Mergification. 1996-07-13 05:10:22 +00:00
Jordan K. Hubbard cb53fe8f5c .xsession should be perm 755
Submitted by:	pst
1996-07-13 04:29:10 +00:00
Bill Fenner cdef477c3d Bring in fix in rev 1.34: copy the pullup'd mbuf to avoid corruption
of packets received on the router.

Ok'd by:	davidg
1996-07-12 18:35:45 +00:00
David Greenman 8f501224d4 Brought in fix from revs 1.18/1.19: fix bug in slow timeout processing. 1996-07-12 17:31:46 +00:00
Jordan K. Hubbard 2db3fa8d19 Mergitude. 1996-07-12 16:35:29 +00:00
Jordan K. Hubbard bef735d294 Mergify 1996-07-12 16:33:27 +00:00
Jordan K. Hubbard 8daf812670 Merge-o-lator. 1996-07-12 15:26:58 +00:00
Jordan K. Hubbard d5ce44021b Remove reverence to sr.4 that crept in - that's not in -stable yet! 1996-07-12 12:00:37 +00:00
Jordan K. Hubbard eabb76aa81 Merge 1996-07-12 11:42:33 +00:00
Jordan K. Hubbard 72d49eac59 Get this ready for 2.1.5-RELEASE 1996-07-12 11:41:45 +00:00
Paul Traina 51d4ad369a Correct security problem in 8lgm advisory 1996-07-12 06:19:48 +00:00
Jordan K. Hubbard 287563c307 Merge. 1996-07-11 20:13:44 +00:00
Mike Pritchard 75b8a7d052 Bring in zero.4 from -current. Update null.4 to xref it. 1996-07-11 20:11:36 +00:00
Jordan K. Hubbard 90753d7a98 Merge. 1996-07-11 20:06:57 +00:00
Mike Pritchard 1b898727d9 Install some new man pages from -current (the files have
already been tagged onto the -stable branch):

aic.4, eg.4, el.4, ep.4, mtio.4, ncr.4 and wt.4

Also include some additional MLINKS for the spkr and pcvt man pages.
1996-07-11 20:03:32 +00:00
Jordan K. Hubbard 1516b86bf6 Merge. 1996-07-11 11:18:45 +00:00
Jordan K. Hubbard eabecb60b3 Add sio2 and sio3 back as disabled devices. Sheesh, you'd think I killed
Nicole Simpson and Ron Goldman for all the impassioned feedback I've gotten
on this one!
1996-07-11 01:09:47 +00:00
David Greenman 6c2bdcfefa Bump RELDATE to 199607. Note that REVISION and BRANCH still need to be
updated prior to the release tag being applied.
1996-07-10 13:30:51 +00:00
Jordan K. Hubbard 593a5fbf19 Why, it's another merge! How 'bout that, eh folks? 1996-07-10 11:48:07 +00:00
Jordan K. Hubbard 980d5c3d27 Merge. 1996-07-10 09:43:47 +00:00
Mark Murray ae6dc34a93 libgcc.so.261.0 is moving to compat20
OKed by: jkh
1996-07-10 06:30:09 +00:00
Mark Murray 843dee5a3f Remove this so it can go into compat20 (the dist). 1996-07-10 06:29:12 +00:00
Jordan K. Hubbard 6caa351bc9 Merge. 1996-07-10 05:02:35 +00:00
Jordan K. Hubbard b70b7df39c Bring in Garrett's NO_CLOBBER_EVER change and Bruce's disabled keyword handling. 1996-07-10 04:15:24 +00:00
Jordan K. Hubbard 939e59b85e It might help if we actually brought ee into -stable finally.. :-) 1996-07-10 03:51:26 +00:00
Jordan K. Hubbard 2d6f11b4be Do the same for 2.1-stable. Those who'll note that sio2 and sio3 have
gone away can talk to David - this was done with his explicit OK. :-)
1996-07-10 03:41:12 +00:00
Peter Wemm cb7418d606 Back out the temp disable of setproctitle, it's been in -stable for a while.
Shorten the line passed to setproctitle, as in rev 1.4

OK'ed by:	jkh
Reviewed by:	freefall :-)
1996-07-09 23:07:53 +00:00
Jordan K. Hubbard a8d9c0672b Merge. 1996-07-09 17:01:59 +00:00
Jordan K. Hubbard ddd1b9fbd5 Merge. 1996-07-09 14:37:12 +00:00
Jordan K. Hubbard 93a5bd9bf5 Merge. 1996-07-09 12:19:03 +00:00
Jordan K. Hubbard 9e3c0eab47 MFSINODE actually needs to be a good deal higher now - make it 64K 1996-07-09 11:25:10 +00:00
Jordan K. Hubbard 9904d6317c Merge. 1996-07-09 07:17:36 +00:00
Jordan K. Hubbard 29f86c7bab Merge. 1996-07-09 03:13:15 +00:00
Jordan K. Hubbard 011d4ccc61 Merge. 1996-07-09 02:41:35 +00:00
Jordan K. Hubbard 349d67883b Yikes! The wcd0 driver got left out of -stable's GENERIC! No wonder
the ATAPI 2.1-SNAP testers have been having problems! :-(
1996-07-08 23:01:41 +00:00
Jordan K. Hubbard dbcad9b82e Merge. 1996-07-08 12:04:59 +00:00
Jordan K. Hubbard a40698a96e Cosmetic tweak. 1996-07-08 11:06:41 +00:00
Jordan K. Hubbard f9482206fc merge-o-matic. 1996-07-08 10:20:15 +00:00
Jordan K. Hubbard 461acf0cf7 Merge. 1996-07-08 09:07:32 +00:00
Alexander Langer 68513f7ce4 Merge typo fix from HEAD. 1996-07-07 23:46:45 +00:00
Jordan K. Hubbard b28842e70a Merge. 1996-07-07 23:26:49 +00:00
Alexander Langer 2f228b8390 Fix the setting of the interface unit wildcard flag. 1996-07-07 04:11:15 +00:00
David Greenman 2d26d694c0 Applied changes similar to rev 1.52: treat kmem_map and mb_map equally
in special cases.
1996-07-07 03:29:44 +00:00
Jordan K. Hubbard 68abc405be Merge. 1996-07-06 02:10:06 +00:00
Jordan K. Hubbard 1cf7e1bd11 Merge. 1996-07-05 11:30:22 +00:00
Jordan K. Hubbard 3d92eee11f Tweak docs for a spur-of-the-moment snapshot. 1996-07-05 10:35:39 +00:00
Jordan K. Hubbard 52fda84eeb Merge. 1996-07-05 08:57:31 +00:00
Jordan K. Hubbard ab9d0aa3e3 Merge. 1996-07-05 08:44:10 +00:00
Jordan K. Hubbard 6a55af626d Merge. 1996-07-05 08:12:28 +00:00
Jordan K. Hubbard 0d6fc294fa Merge. 1996-07-05 06:54:15 +00:00
Jordan K. Hubbard ea1de1e20f Update docs. 1996-07-05 01:24:13 +00:00
Jordan K. Hubbard a198c9a96e Merge. 1996-07-05 01:04:10 +00:00
Jordan K. Hubbard ce0454166c Merge. 1996-07-05 00:55:17 +00:00
Jean-Marc Zucconi 6d3fc10a33 Merge from HEAD 1996-07-05 00:25:31 +00:00
Jordan K. Hubbard 5f063083eb Merge from HEAD 1996-07-04 05:47:31 +00:00
Gary Palmer 474eff4850 Fix typo
Submitted by:	 Philippe Charnier <[email protected]>
1996-07-03 22:07:39 +00:00
John Polstra 6221185ef1 Merge from main branch 1.14 -> 1.15: Fix uninitialized field in object
file.
1996-07-03 15:47:38 +00:00
Nate Williams 555f872cd7 Bring in changes from the HEAD:
Document MAXMEM.
1996-07-03 05:31:39 +00:00
Nate Williams 2d4cc1ae5d Bring in changes from the HEAD:
GENERIC - Add a commented out line for adding support for IBM ThinkPad
            keyboards

  LINT - Add SCANSET=2 support to the LINT kernel and comments reflecting it's
         purpose.
1996-07-03 05:23:13 +00:00
Jordan K. Hubbard f986be9f6a Merge from head, sans hw.sgml which still needs more work. 1996-07-03 01:39:28 +00:00
Jordan K. Hubbard 685c0af9e2 Merge with HEAD. 1996-07-03 01:31:18 +00:00
Jordan K. Hubbard 9e8df2d15b Merge from HEAD. 1996-07-03 01:19:11 +00:00
cvs2svn 1396c555ea This commit was manufactured by cvs2svn to create branch 'RELENG_2_1_0'. 1996-07-02 23:16:18 +00:00
Bruce Evans 65bc0c8fb3 Brought in change from rev.1.30: fixed a vnode reference leak in
nfsrv_rename().
1996-07-02 20:28:20 +00:00
Bruce Evans d561d94608 Brought in changes from rev.1.42: fixed handling of device flags. 1996-07-02 20:18:35 +00:00
Bruce Evans 09b8ce2ef9 Brought in fix from rev.1.80: don't turn off the motor on active drives. 1996-07-02 19:58:11 +00:00
Bruce Evans 149ad431b5 Brought in changes from rev.1.6: fixed scrolling and removed bogus
save/restore of BIOS memory.
1996-07-02 19:25:19 +00:00
Bruce Evans a4f7379cd4 Brought in change from rev.1.28: fixed getdirentries() on nfs mounted
msdosfs's.
1996-07-02 18:40:22 +00:00
Bruce Evans deeb8155dd Brought in changes from revs.1.3-1.4: don't exit before attempting to
count all the files.
1996-07-02 17:22:17 +00:00
Bruce Evans a8e8c42f75 Brought in fix from rev.1.7: use strtoq() instead of strtol() to avoid
overflows.
1996-07-02 17:08:40 +00:00
Bruce Evans 6681856467 Brought in change from rev.1.6: fix a null pointer bug in printreg(). 1996-07-02 16:58:39 +00:00
Bruce Evans 4084f8b6b2 Install pt.4 and worm.4. 1996-07-02 16:43:05 +00:00
Bruce Evans 542992ec17 Brought in change from rev.1.9: fixed bugs in the fix for defaulting to
udp if no flags are specified.
1996-07-02 15:55:56 +00:00
Bruce Evans c81fbb7cb4 Brought in change from rev.1.3: stat() before open() because opening of
special files may be harmful.
1996-07-02 15:44:59 +00:00
Bruce Evans 65ceb8151b Brought in changes from rev.1.6: initialize arrow key data completely. 1996-07-02 15:34:02 +00:00
Bruce Evans c0a150389d Brought in changes from HEAD. 1996-07-02 15:25:11 +00:00
Bruce Evans 86e10751e5 Merged with HEAD: fixed spelling and added support for Cyclades and
Digiboard devices.
1996-07-02 14:39:34 +00:00
Bruce Evans 60831bf968 Merged from HEAD. Everything except perfmon, wcd bugs (wcd doesn't
decode the partition bits, so having both wcd0a and wcd0c is dangerous
and almost useless) and sound and mouse anachronisms.  All cosmetic
except for fixing some transiently wrong permissions and one missing
chgrp (there are still many minor bugs in this area).
1996-07-02 14:24:56 +00:00
David Greenman 2a17234a73 Retrofitted changes from main branch: do pfsnode locking to prevent
concurrent access. Fixes system hang resulting from multiple simultaneous
ps(8)'s when coupled with heavy paging activity.
1996-07-02 13:55:16 +00:00
David Greenman f592e0c7d8 Brought in changes from revs 1.13, 1.14, 1.18, and 1.20...various fixes
for calcru().

Reviewed by:	bde
1996-07-02 12:49:34 +00:00
David Greenman b9f4917c5f At the urgence of several people, not the least of whom are the folks
of the Intel Architecture Lab, disabled the optimized Pentium microtime.
It causes two bugs in 2.1.x: it doesn't account for laptops with power
management and it sometimes is broken completely because the cycle_counter
comes up with the wrong value. I've seen this latter bug occur dozens of
times.  The implementation in the main branch addresses some of these
issues, but we're too close to the release to consider bringing in all
of those changes, so this is the safest solution.

Reviewed by:	bde
1996-07-02 12:46:28 +00:00
Bruce Evans 737c256605 Merged with HEAD: fixed some descritions and a macro. 1996-07-02 12:45:08 +00:00
David Greenman d41f579b57 From main branch: Kill a bogus VM_WAIT in vm_fault_wire() that may have
undesired effects.

Submitted by:	dyson
1996-07-02 10:59:04 +00:00
David Greenman 17f5e06a21 Retrofitted new procfs_rwmem() from main branch. This version is similar
except that upages are handled differently in -stable. This version
fixes a potentially serious hole dealing with incorrect object locking.

Reviewed by:	dyson
1996-07-02 01:58:38 +00:00
Alexander Langer cf3770074f Correct definition of 'established' keyword. 1996-07-02 00:29:22 +00:00
Bruce Evans e6d4ee46f1 Brought in changes for specifying the BIOS drive number to boot from.
Requested by:	Joerg
1996-07-01 16:35:55 +00:00
Joerg Wunsch ad9ed1a8ca Update the sample copyright to the -current version (leave out the
``no advertisment'' clause).

NB that i've also included the find_interface examples into 2.1.X, but
this happened by a CVS tag operation behind the scene, thus no commit
message.  The parent Makefile is supposed to pick this change
automagically.
1996-07-01 14:36:05 +00:00
David Greenman be094295a6 Fixed rather serious bug in the use of pmap_kenter() in kmem_malloc().
It's important that pmap_enter() be used here because the pages won't
be removed from the kernel VM when freed otherwise. This would result
in the potential for the wrong page(s) being used if a vm_map_pageable()
was done on this same address space (since no fault would occur, the
previous page(s) would be bogusly used instead). This is almost
certainly yet another cause of wcarchive instabilities.

Thanks to John Dyson for helping me track this one down!
1996-07-01 14:22:22 +00:00
Joerg Wunsch dcb7326689 Make the lkm examples buildable and working again. Mostly taken
from -current.
1996-07-01 14:20:42 +00:00
Peter Wemm efd93305b2 Bring in rev 1.47, fix typo that prevented the locked termios state devices
from working.

OK'ed by: davidg
1996-07-01 11:01:58 +00:00
Jordan K. Hubbard 51efcdc49a Update reference for netscape. 1996-07-01 02:56:44 +00:00
Jordan K. Hubbard 25aaeb7f2d Bring in the README I actually used, just for consistency. 1996-07-01 02:55:35 +00:00
Jordan K. Hubbard cdae44a8f4 Document ncftp / fetch changeover. 1996-06-30 23:31:05 +00:00
Mark Murray a8f02e9fff Make telnet part of the krb distribution 1996-06-30 12:50:58 +00:00
Joerg Wunsch c93936f249 Back out the change from rev 1.4.4.2: it was unnecessary and broke
setuid scripts.
1996-06-30 09:52:45 +00:00
Joerg Wunsch e9516d1916 Merge rev 1.5: create ktrace.out with mode 0600. 1996-06-30 09:42:42 +00:00
David Greenman 59fe90f426 Brought in fix from rev 1.94: make sure pages involved in I/O are not
mapped into any processes.
Also set b_pages[]=0 when the pages are removed from the buffer - this
is to satisfy my paranoia by making sure that nothing bogusly messes with
the pages after the buffer has been reclaimed. A similar change was made
in the main branch some time ago.
1996-06-30 05:23:41 +00:00
Alexander Langer 306e7711c5 Merge fixes from HEAD (rev 1.6). 1996-06-30 02:59:16 +00:00
Nate Williams 64d3da9399 Fixes for MSS sound support. These are pretty harmless and shouldn't affect
anyone else.

Submitted by:	Thomas Graichen <[email protected]>
1996-06-29 13:48:06 +00:00
David Greenman 717eb31334 Make sure we have an object in the map entry before trying to trim pages
from it.
1996-06-29 09:17:17 +00:00
Alexander Langer db0991f7df Merge fixes from HEAD (rev 1.28).
Commit approved by:	jkh
1996-06-29 03:55:46 +00:00
Jordan K. Hubbard d76d90600b Merge Lynx change from HEAD 1996-06-29 03:50:24 +00:00
Jordan K. Hubbard bbad9c5164 Merge from HEAD (unspam myself) 1996-06-29 03:47:44 +00:00
Jordan K. Hubbard 0f525cd786 Add 3rd ZA site. 1996-06-29 02:41:44 +00:00
Alexander Langer d945b5d1f0 Merge port syntax fix from HEAD. 1996-06-29 01:36:22 +00:00
Gary Palmer a832b62759 Bring in change from rev. 1.20: add links for the fts(3) set of functions. 1996-06-28 23:22:54 +00:00
Joerg Wunsch 91bb19895f Fix two small nits in the -stable `od' driver.
Submitted by:	[email protected] (Shunsuke Akiyama)
1996-06-28 16:59:47 +00:00
Sujal Patel 015260907e Added missing prototype for sigaltstack() 1996-06-28 04:33:51 +00:00
Nate Williams 7b69d2d085 Trivial bugfix which occurs when DEBUG_FLAGS is defined. If DEBUG_FLAGS
is defined, STRIP is undefined and causes the Makefile to blow up, so
make sure STRIP is defined if you plan on using it.
1996-06-27 21:48:50 +00:00
Joerg Wunsch 9058c77fa2 Merge the fix from rev 1.158: repair the keyboard reset i broke. 1996-06-27 21:39:55 +00:00
John Polstra 46e4a51691 Merge in a portion of the profiling fixes from main branch 1.78 -> 1.79.
Specifically, this corrects the profiling of system times, which were
underreported by a factor of 8.

Suggested by:	Bruce Evans <[email protected]>
1996-06-27 16:44:29 +00:00
David Greenman 5cf25e9cfd Add another check to vm_pageout_clean: make sure the page isn't wired. 1996-06-27 10:29:09 +00:00
David Greenman 6b48c17a15 Correct a minor ommision: I left out a vput() when unwinding an exceptional
condition. Also, it's possible that we might not be dealing with the same
page if the vget() should block but still succeed (this is possible), so
be sure to check to see that the page is still dirty and on the PG_INACTIVE
queue. Checks in vm_pageout_clean() will guarantee that the page is still
a condidate for pageout (busy, hold, PG_BUSY, etc).
1996-06-27 10:15:40 +00:00
Jordan K. Hubbard 8290802c6b Whups! I didn't mean to take all that across! 1996-06-27 07:23:43 +00:00
Jordan K. Hubbard 5d3fba2f2e Merge from HEAD 1996-06-27 07:20:56 +00:00
David Greenman e0959bc037 Increased slptime threshold for swapout from 4 seconds to 10. The old
value was far too aggressive.
1996-06-27 05:48:51 +00:00
David Greenman 423cc73364 Retrofitted the non-recursive RSS limiting code from main branch. Due
to the major differences in the VM systems in current and stable, this
retrofit does have some significant algorithmic differences. In any
case, it should be superior to the old (recursive) algorithm in every way.
This, along with the vm_glue.c fix, should fix all of the recent
paging performance complaints.

Reviewed by:	dyson
1996-06-27 05:46:44 +00:00
David Greenman dd46dfc21e pmap_remove() the upages when swapping out the process. Not doing so
will cause the pages to never be cleanablei - leading to a pageout
daemon loop.

Reviewed by:	dyson
1996-06-27 05:39:02 +00:00
Gary Palmer 4a6da35900 Bring over intro(4) from -current 1996-06-27 05:38:51 +00:00
Gary Palmer a18f40d21f Bring in a bunch of man page fixes from the HEAD 1996-06-27 05:33:29 +00:00
Gary Palmer 780ca05343 Bring in change from rev. 1.22:
Set IFF_RUNNING on the loopback interface.
1996-06-27 05:11:04 +00:00
John Polstra 7184e99eb9 Merge profiling bug fix from main branch 1.35 -> 1.36.
This fixes a serious profiling bug:  All addresses >= 256K caused
an overflow, and had their times tallied in the wrong counters.

Bruce Evans has devised a more complete fix that addresses other
issues as well.  But for now, this simple fix is effective and
easy to understand, making it worthy of inclusion in 2.1.5.
1996-06-27 00:46:20 +00:00
Nate Williams 206edda4ff Add libftpio to 'includes'. 1996-06-26 22:48:47 +00:00
Gary Palmer 10fe505495 Bring in change from rev. 1.215: missing space in comment 1996-06-26 21:15:29 +00:00
Gary Palmer 72d63537b4 Merge from HEAD: it's ftpGetModtime, not ftpModtime. 1996-06-26 20:33:57 +00:00
Gary Palmer dfb78badb9 Update comment relating to PTY's, as we can have 256, not 64 as it suggested 1996-06-26 19:43:19 +00:00
Nate Williams 9295078e30 Fix for " CERT Advisory CA-96.12 - Vulnerability in suidperl"
Submitted by:   The Perl Gods as described in the advisory
1996-06-26 19:13:30 +00:00
Mark Murray 07bde751cb Correct comment - this firs appeared in 2.1.5, not 2.2 1996-06-26 17:08:02 +00:00
Joerg Wunsch b85033aad3 Correct two minor nits i've been botching yesterday. 1996-06-26 15:54:13 +00:00
Jordan K. Hubbard 6c78aa1860 Merge with HEAD 1996-06-26 09:32:02 +00:00
Jordan K. Hubbard 6be2387e46 Merge from HEAD 1996-06-26 09:24:03 +00:00
David Greenman 25a8c28df7 Fix the immediate problem: add missing arg to freeer() routine. The last
few edits to this still don't solve the original problem. It appears
that the recursion is *much* worse than we thought - I'm already testing
at 30 levels deep, and it still terminates before finishing the job.
This problaby explains some people's stack overflow problems... :-(
1996-06-26 08:19:48 +00:00
David Greenman d156743657 Fix yet another editing mistake that caused physio() to be really
broken and return wrong data to the user. Sigh...I need a vacation.
This patch is copied directly from John's edit on the main branch,
so I'm *sure* it is correct. :-)
1996-06-26 07:39:31 +00:00
David Greenman 757e32e0a6 Woops, I was a bit overzealous in my editing...add back the missing line. 1996-06-26 06:58:12 +00:00
Mark Murray 512b8eb6b5 Disable the fancy i586 timer stuff. Making this work at this late stage
is not good for my health or my popularity.
1996-06-26 06:24:25 +00:00
David Greenman d85ce565b2 In pmap_object_init_pt, limit the scan of pages through an object to the
object's size. This is mostly just a precaution, but makes John and me
sleep slightly better at night. :-)

Submitted by:	dyson
1996-06-26 06:18:10 +00:00
David Greenman fcb73f9930 Fix a panic that occurs when an I/O is attempted with more than
MAXPHYS/PAGE_SIZE pages. This occurs when there is a non-page aligned
I/O of MAXPHYS size. The fix is to trim the request to MAXPHYS-PAGE_SIZE.
It apparantly wasn't noticed previously because of other bugs.
1996-06-26 06:12:45 +00:00
David Greenman d27715b921 1) Limit recursion when duing RSS trimming.
2) Fix a bug that caused the page stats to get messed up.
3) Re-enabled RSS limiting.

Submitted by:	mostly by John Dyson
1996-06-26 06:08:45 +00:00
David Greenman 9700103308 Brought in fix from rev 1.6: fix for the line continuation fix. 1996-06-26 05:55:45 +00:00
David Greenman 18f3fce383 Brought in most of the improvements/bugfixes from the main branch. Thanks
to Stefan Esser for taking the time to sort all of this out.
1996-06-26 04:36:54 +00:00
Jordan K. Hubbard c64e7dc86b Add more device driver entries for Specialix / Stallion cards.
Submitted-By: peter
1996-06-26 02:36:06 +00:00
Jordan K. Hubbard 4afce3a31f Merge from HEAD. 1996-06-25 22:19:08 +00:00
Bill Paul c1f9987f70 Bring in two small fixes from the head:
- Install Makefile.yp as /var/yp/Makefile.dist and only make a link
  to it from /var/yp/Makefile if /var/yp/Makefile doesn't already
  exist. This way we won't clobber an existing copy of /var/yp/Makefile
  which the user may have modified and wants to keep.

- Make the services.byname target generate proper map keys.

This will probably be my last commit to this branch unless the
freeze deadline changes for some reason.
1996-06-25 21:17:58 +00:00
Gary Palmer 189a55fea1 Back out part of rev. 1.9.4.5. We don't have the updated kmod stuff from
-current and the modload command still needs the entry point
1996-06-25 21:14:52 +00:00
Bill Paul 8485dbe68a Bring in small fix from HEAD:
Remove two unnecessary calls to free(result).
1996-06-25 21:02:18 +00:00
Mark Murray 92817935b2 Merge (sorta) with HEAD - add rndcontrol. rndcontrol itself got
added with a tag operation, and the subdirs paragraph got refomatted
- it was looking a tad messy.
1996-06-25 20:39:37 +00:00
Mark Murray d28f19f9e5 Merge with HEAD. Add /dev/random 1996-06-25 20:26:40 +00:00
Mark Murray d644e37a8c Merge with HEAD - bring in /dev/random 1996-06-25 20:19:56 +00:00
Jordan K. Hubbard 752fdc4069 Break the "what's new since 2.1.0-RELEASE?" section into categories.
Jumbling it all together makes it hard to figure out what's changed.
1996-06-25 19:43:33 +00:00
Jordan K. Hubbard fbbf45f462 Adjust documentation for 2.1.5 1996-06-25 19:05:49 +00:00
Bruce Evans 6b993751fe Merged from HEAD (rev.1.4): fixed comparisons to stop malloc(INT_MAX) from
dumping core.
1996-06-25 18:57:44 +00:00
Joerg Wunsch 1c8d3e27ec Merge from HEAD: kill the various BUGS sections since the bugs
have been fixed since.
1996-06-25 18:32:46 +00:00
Joerg Wunsch 277414286b Merge the "retension" command -- userland part 1996-06-25 18:31:55 +00:00
Joerg Wunsch 2aefbb0dd2 Merge rev 1.3: kill gets() 1996-06-25 18:31:22 +00:00
Joerg Wunsch be521a2501 Merge various fixes from HEAD:
. localization
. dynamic buffers
. fix a core-dump condition
1996-06-25 18:30:55 +00:00
Joerg Wunsch f8196e2f46 Fix from rev 1.24:
Provide a better handling of partially corrupted directory entries.
1996-06-25 18:30:21 +00:00
Joerg Wunsch 581aa2ba56 Merge from rev 1.50:
Add the Emulex MD21 ESDI-to-SCSI bridge as a known device (with more than
one LUN).
1996-06-25 18:29:53 +00:00
Joerg Wunsch f3648f9ee8 Merge the fix from rev 1.28 1996-06-25 18:29:28 +00:00
Bruce Evans 9ac5748e80 Merged from HEAD rev.1.11-1.12: enabled .c rule; added suffix and rule;
removed special sparc support; added ${LDFLAGS} to linker rules.

Enabling the .c rule fixes PR 1347.  The bugs in null suffix rules that
stopped this being enabled in 2.0.5R were fixed long before 2.1R.
1996-06-25 18:24:50 +00:00
Bill Paul d1597564b9 Bring in one fix from the HEAD:
In _yp_dobind(), don't spew an error message on failure to contact
ypbind unless it's for something really out of the ordinary. This stops
_yp_check() from generating a lot of pointless noise. (Example: set your
system domainname but don't turn on NIS, then do an rpcinfo -p. Watch
as 'clnttcp_create' errors scroll by.)
1996-06-25 17:53:33 +00:00
Joerg Wunsch 322d56e65d Merge from HEAD:
kernel-side of the MTRETENS implementation.
1996-06-25 17:46:01 +00:00
Joerg Wunsch b6dac1da1c Merge the fixes from rev 1.66 of fd.c and rev 1.8 of rtc.h:
add an alias for 2.88 MB floppy drives
1996-06-25 17:39:21 +00:00
Joerg Wunsch 8621635a42 Oversight when merging the "od" driver 1996-06-25 17:38:19 +00:00
Joerg Wunsch ee1bfc2bf4 Merge from HEAD: add sysexits.3 1996-06-25 17:38:04 +00:00
Joerg Wunsch 2b9f3ac075 Merge from rev 1.110: fix the /dev/io security hole 1996-06-25 17:37:52 +00:00
Joerg Wunsch 00e64820f0 Merge with HEAD:
add the CD-ROM Audio Control Parameter Page
1996-06-25 17:37:27 +00:00
Joerg Wunsch f7b0b03a43 Add cfree.3 1996-06-25 15:08:00 +00:00
Joerg Wunsch 88d77308a1 Merge the fix from gcc.c rev 1.8 1996-06-25 15:05:07 +00:00
Joerg Wunsch 4817d2c384 Merge the changes from rev 1.19 of /etc/daily and 1.92 of /etc/rc --
Hint about alternatives to the boot-time cleanup of /tmp
1996-06-25 14:56:02 +00:00
Joerg Wunsch 05d8b864dc Sync with HEAD: update mkisofs to version 1.04 1996-06-25 14:54:07 +00:00
Joerg Wunsch 66e84962fd Sync with HEAD: update mkisofs to version 1.04 1996-06-25 14:46:56 +00:00
Joerg Wunsch 9aa81d1872 Sync easy-import with HEAD 1996-06-25 14:45:10 +00:00
Joerg Wunsch c615850513 Merge the fixes for rev 1.9 and 1.10 of parser.c, and
1.9 of Makefile
1996-06-25 14:37:46 +00:00
John Hay 3f4f1fe04d Bring selected changes in from HEAD to stop the LCP state machine from
getting stuck when the link had gone down. It also fix some of the
flags in raw Cisco HDLC mode.
1996-06-25 14:17:40 +00:00
Jordan K. Hubbard 455d6da9ef Add worm to /usr/share/examples 1996-06-25 08:40:13 +00:00
Jordan K. Hubbard d1af10a3fe Merge from HEAD 1996-06-25 05:33:38 +00:00
Gary Palmer 5eb89ad95b If you are going to test compile something, better check it's in your
config file first. Make the last commit actually work.
1996-06-25 04:44:55 +00:00
Gary Palmer 3e2a062f27 Change the use of if_lastchange to be more SNMP compliant. This is NOT
a merge from the head as the two versions of ppp are very different.
1996-06-25 04:28:54 +00:00
David Greenman e2c0f34946 Retrofitted fix from rev 1.11: rewrite of obreak(). 1996-06-25 03:48:34 +00:00
Bill Paul dcda7677a9 Merge in some NIS fixes from the HEAD:
- Fix bugs in gethostbynis and getnetbynis.

- Add NIS support to getservent(3).
1996-06-25 03:22:25 +00:00
Alexander Langer 3903ba4a4b Merge with HEAD. 1996-06-25 03:16:43 +00:00
Gary Palmer a03952c3fc Sync with the HEAD 1996-06-25 03:15:06 +00:00
David Greenman bdb2942624 Brought in fix from rev 1.21: fix end condition for clustered reads. 1996-06-25 03:02:11 +00:00
Nate Williams 5de512060c Finish removing this from -stable. 1996-06-24 23:21:26 +00:00
Gary Palmer e964af08c0 Bring in change from rev. 1.9:
Use a dynamically-sized buffer for SIOCGIFCONF so that `ifconfig -a'
actually retrieves all the information no matter how many interfaces
there are.
1996-06-24 22:27:01 +00:00
Gary Palmer 9556f39143 Bring in change(s) from the head: alter the way if_lastchange is used
to be more in line with what SNMP wants.

OK'ed by: David Greenman
1996-06-24 22:04:24 +00:00
Jordan K. Hubbard 5d121d94a4 Put this back to being a perl script after tagging in the spkrtest.pl
and spkrtest.8 files.
1996-06-24 21:46:48 +00:00
Mark Murray 2c15b166c9 Merge with HEAD - create libdescrypt.
Pointed out by: rgrimes
1996-06-24 18:19:22 +00:00
Bill Paul 993b72dc3d Merge in a couple of fixes from the HEAD:
pw_yp.c:

- Fix silly bug in copy_yp_pass().

- In yp_submit(), use the password from the pw struct passed in as
  an argument instead of calling getpwnam() to find it: for one thing
  this is unnecessary since we already have the crypted password, and
  for another it cause us to pick the wrong password in the event that
  the user exists both in the local database and in YP.

edit.c:

- Change shell restriction policy: if the shell field isn't restricted
  and it's valid, or if the the user is root, allow the shell field to
  be edited.
1996-06-24 17:18:04 +00:00
Jordan K. Hubbard 86d5101b4e Uh, this is a shell script, not a perl script. :-) 1996-06-24 15:28:12 +00:00
Joerg Wunsch d9d1efa667 Remove some old and unused cruft so that `swap generic' kernels will
actually link again.  (I wonder whether i'm the only one who's ever
been using them...)
1996-06-24 14:30:32 +00:00
Jordan K. Hubbard e038d7bcbc Merge from HEAD. 1996-06-24 02:40:24 +00:00
Jordan K. Hubbard 38b4dc401d Merge with HEAD 1996-06-24 02:30:37 +00:00
Jordan K. Hubbard 2407940ce0 Merge from HEAD 1996-06-24 02:29:29 +00:00
Peter Wemm 8c58217582 Selected fixes from HEAD, including:
- Show the "B" flag on blackhole routes (as documented)
 - fixes from 4.4Lite-2 to make the dns reverse-lookups a little less
   broken in the face of subnets (and show network route size)
 - more sensible trimming of the local host's domain name.
 - more readable '-w' statistics output
1996-06-24 00:13:50 +00:00
Peter Wemm 0c1b38c41a Add the stallion subdir, now that it's on the 2.1 branch. 1996-06-23 23:41:39 +00:00
Peter Wemm a87c029736 Bring the two Stallion serial card drivers (both cd1400 and intelligent)
into the 2.1 branch from -current.  The other files have been tagged.

OK'ed by: davidg
1996-06-23 23:24:36 +00:00
Wolfram Schneider 5bb16227a5 add hosts.equiv.5 hosts.lpd.5 1996-06-23 23:15:11 +00:00
Wolfram Schneider 0e97690ac1 Merge from HEAD: add 05.sysman 1996-06-23 23:09:12 +00:00
Wolfram Schneider ba5363085e Merge from HEAD
install forgotten INDEX.*
1996-06-23 22:10:29 +00:00
Wolfram Schneider 766cdadf01 Merge from HEAD. 1996-06-23 22:03:56 +00:00
Alexander Langer 16f571e736 Merge fixes from HEAD (rev 1.27). 1996-06-23 20:51:37 +00:00
Wolfram Schneider b18b803f33 Merge from HEAD. 1996-06-23 20:35:22 +00:00
Justin T. Gibbs e451e08192 Merge with HEAD. 1996-06-23 20:13:13 +00:00
Joerg Wunsch de4a480cda Update the bugs section. Mostly merged from HEAD, with one addition
that is 2.1.X-specific.
1996-06-23 18:33:04 +00:00
Joerg Wunsch 230a4227ca Ooops, forgot to update worm(4). 1996-06-23 16:50:11 +00:00
Joerg Wunsch 835f901f21 Merge scsiformat from HEAD, and enable it in the Makefile. The old
(4.4BSD) version was defunct, while Peter Dufault's wrapper for scsi(8)
works well, so there's no reason to hide it uninstalled.
1996-06-23 15:05:09 +00:00
Joerg Wunsch 822cfeecd5 Add wormcontrol, now that worm(4) has been updated.
(The actual import of wormcontrol(8) into the branch is done behind
the scene by a cvs tag operation, you'll only see a commit message for
the Makefile change.)
1996-06-23 14:58:30 +00:00
Joerg Wunsch 29223026f1 Merge the worm driver into -stable, untested, but eyeball-reviewed.
The existing worm driver there was entirely useless, you couldn't do
anything with it.  Thus i believe that shipping a beta-quality driver
is still better.  (The only other option would have been to remove it
from the branch.)
1996-06-23 14:48:39 +00:00
Bruce Evans 9e81ff7cfa Brought in fix from rev.1.8: made strip failures fatal. 1996-06-23 14:24:57 +00:00
Mark Murray 925a5110ce Merge with HEAD. 1996-06-23 14:07:40 +00:00
Bruce Evans bcf7e0317b Disabled unusable union lkm as in -current and rearranged comments to get
closer to -current.
1996-06-23 13:47:31 +00:00
Mark Murray 219f58e41a kerberosIV/des.h -> des.h 1996-06-23 13:08:41 +00:00
Joerg Wunsch 2fcab564a6 Merge my changes from Mar 9, 1996. Basically, this makes talk able
to work on multi-homed hosts.  As a side effect, this was a major
cleanup of the sources.
1996-06-23 11:47:09 +00:00
Jordan K. Hubbard 7336a8acac Merge various useful things from HEAD. 1996-06-23 07:52:27 +00:00
Peter Wemm e3a12519a7 Bring in rev 1.41; fix timeout estimation with a B0 hangup.
Bring in rev 1.46; fix output flow control and break sending.
1996-06-23 04:14:43 +00:00
Jordan K. Hubbard f461d01768 Merge with HEAD 1996-06-23 01:44:07 +00:00
Gary Palmer ccf639f947 Merge in man page fixes from the head 1996-06-22 23:52:34 +00:00
Gary Palmer f62325277f Merge in change from rev 1.213. Fix spelling errors.
Submitted by: jraynard
1996-06-22 21:34:40 +00:00
Joerg Wunsch 5f8fa8829f Merge the fix from rev 1.69: bump the timeout for st_erase(). 1996-06-22 15:00:00 +00:00
Joerg Wunsch bb54293e04 Fix the major number of the `od' driver.
Submitted by:	[email protected] (Shunsuke Akiyama)
1996-06-22 13:03:56 +00:00
Gary Palmer d80e34ed48 Bring in change from rev. 1.26: keep in/out byte counters. 1996-06-22 09:45:18 +00:00
James Raynard 093a7beb67 Document the fact that it only works if the trace record is a regular file. 1996-06-22 02:15:28 +00:00
Wolfram Schneider f44aad9ecb Merge from HEAD
EOF bug
1996-06-21 23:18:44 +00:00
Mark Murray 3e8ee7c922 Remove reference to eBones/des, as this is now gone. 1996-06-21 19:41:35 +00:00
Mark Murray 0f8f646de4 Oops - forgot to remove these 1996-06-21 18:48:43 +00:00
Mark Murray 3536c916a7 Make this makefile work with STABLE 1996-06-21 18:39:54 +00:00
Mark Murray ca2abb0668 Merge with HEAD 1996-06-21 17:32:26 +00:00
Jordan K. Hubbard d2211cb251 Merge 2 bug fixes from HEAD 1996-06-21 13:12:09 +00:00
David Greenman d5b5ede018 Brought in fix from rev 1.5: handle continuation lines correctly. 1996-06-21 06:06:57 +00:00
James Raynard 9a04aede04 Change brought over from HEAD.
Merged in 4.4Lite2 version, added $Id$'s. This should fix the garbage
error messages printed out under certain circumstances.
1996-06-21 01:12:18 +00:00
Jordan K. Hubbard 2bec671fa7 Merge from HEAD 1996-06-20 23:53:28 +00:00
Mark Murray 6a237fbb48 Remove $log's. These are a pain. 1996-06-20 21:21:01 +00:00
Jordan K. Hubbard 9489798d39 Don't try to build config.new 1996-06-20 17:27:55 +00:00
Jordan K. Hubbard f279958ef7 Sync with HEAD. 1996-06-20 15:52:04 +00:00
Jordan K. Hubbard 95199a2b93 Merge from HEAD 1996-06-20 14:35:33 +00:00
Jordan K. Hubbard 17957bdcab Add fetch, which was just tagged in. 1996-06-20 14:30:56 +00:00
Jordan K. Hubbard ae33388439 Bye bye ncftp 1996-06-20 14:21:31 +00:00
Jordan K. Hubbard 7be9bfb073 Merge from HEAD - nuke ncftp 1996-06-20 14:21:05 +00:00
Jordan K. Hubbard 14a1dcd038 Merge from HEAD 1996-06-20 14:15:44 +00:00
Jordan K. Hubbard 4300d4453a Get rid of libforms (didn't notice the reference here). 1996-06-20 14:03:52 +00:00
David Greenman 91c1af269b Brough in fix from rev 1.66: account for non-page aligned buffers. 1996-06-20 08:08:29 +00:00
David Greenman 1375c38d9e Brought in the rewritten versions of vmapbuf/vunmapbuf from main branch.
Not only is the code higher quality, but it also fixes a rounding/off-by-
one bug that caused a panic when doing physio() with DIAGNOSTIC. This
fix closes PR#1195.
1996-06-20 01:55:54 +00:00
Nate Williams 19b07353bf No need for this in -stable either. 1996-06-19 22:41:44 +00:00
Nate Williams b51848fe13 rpc.yppasswd doesn't exist in -stable. Use yppasswd instead. 1996-06-19 21:41:56 +00:00
Jordan K. Hubbard c533f332e0 Merge from HEAD 1996-06-19 20:57:04 +00:00
Jordan K. Hubbard fb69d5c62f Merge from HEAD. This is part of a multi-part commit since the SGML tools
need to be merged as well for this to work, but they're in a different part of
the subtree.  I have to merge this because a) our -stable docs are way out of
date and b) I need the "doc" distribution to appear in -stable if I'm to use
a single copy of sysinstall for both.  Reviewers of this MOST welcome!
1996-06-19 20:28:57 +00:00
cvs2svn a44f2067f9 This commit was manufactured by cvs2svn to create branch 'RELENG_2_1_0'. 1996-06-19 09:32:13 +00:00
David Greenman 5387177170 Fixed several serious bugs that had to do with traversing the page
queues and inadvertantly stepping off the queue via a page that was
previous removed from it. Also killed the potentially evil RSS limiting
code in the vmdaemon - it traverses allproc which would not be consistent
if the code should block for some reason (it shouldn't block, but we're
not completely sure of that...).

Submitted by:	dyson
1996-06-19 07:26:57 +00:00
David Greenman 4cebcd747c Add m->hold_count != 0 to the list of exceptions for not putting a page
on the cache queue. The previous behavior might have allowed a page
to get on the cache queue that shouldn't have been.

Reviewed by:	dyson
1996-06-19 07:22:45 +00:00
David Greenman e7a57e693f Make certain that pages (especially cached pages) are pulled off the
page queue immediately so that they aren't used by something else before
we get to them.

Submitted by:	dyson
1996-06-19 07:20:21 +00:00
David Greenman 7fcb71d82b Brought in fix from rev 1.18: gain a reference to the vmspace and do
proper map locking to avoid a potential panic.
1996-06-18 08:36:18 +00:00
Alexander Langer 7cb1ec8363 Merge fix from rev 1.26. 1996-06-18 02:03:29 +00:00
Jordan K. Hubbard 453a26ef54 Merge (again!) 1996-06-17 21:57:54 +00:00
Jordan K. Hubbard 04640727e3 Merge with head. 1996-06-17 21:12:35 +00:00
Jordan K. Hubbard f46d950f00 Include libftpio. 1996-06-17 20:54:26 +00:00
Jordan K. Hubbard ecfd1091be Merge very small, selected parts of this directory from HEAD. Mostly
motivated by a desire to see the local_startup stuff work correctly
for the packages collection in 2.1.5.
1996-06-17 09:17:53 +00:00
Jordan K. Hubbard 25e0f22636 Merge from HEAD 1996-06-17 09:04:59 +00:00
Alexander Langer 0c4387a47f Merge in two bug fixes from HEAD: chain numbering bug (rev 1.40) and
deletion of default policy (rev 1.37).
1996-06-17 00:03:55 +00:00
Satoshi Asami 0c881fd16d Merge from HEAD: create .../etc/rc.d. Without this change the new
apache startup scripts won't install correctly.
1996-06-16 22:33:58 +00:00
Joerg Wunsch 3baa4aa17f Upgrade the `od' driver in -stable. Merge the fixes from the
following respective revisions:

	sys/scsi/scsi_disk.h		1.9
	sys/scsi/scsi_driver.c		1.16
	sys/scsi/od.c			1.18
	sys/i386/conf/LINT		1.265
1996-06-16 20:10:37 +00:00
Bruce Evans 94a1304f8c Removed comments about history. These were turned into the log message
in the previous commit.
1996-06-16 11:54:16 +00:00
Bruce Evans 3c1a12ac40 Latest fixes from the author (committed to -stable because the -current
version isn't ready and the version in -stable is quite broken):

- read optimization
- corrections in data flow mechanism
- restoring board memory window state while returning from
  reentrable functions
1996/03/16:
  - now several boards can coexist and share the same memory window
1996/03/24:
  - eliminated 'b_to_q to a clist..' message while turning off modem
1996/04/10
  - 'static int nports'... - next attempt to drive several boards.
    Reported that with this fix it works with 2 boards.
1996/04/20
  - Overloading channel (ping -f host) caused 'No buffer space..'
    state until slip unit restart. Fixed.

Submitted by:	"Serge A. Babkin" <[email protected]>
Changes by:	Oleg Panashchenko <[email protected]>
1996-06-16 11:50:40 +00:00
Bill Paul 6445760383 Bring in fix from HEAD: add missing semicolon. 1996-06-15 16:19:57 +00:00
David Greenman 2682597cbe vm_map_entry_dispose() needs splimp protection, too, so add it. 1996-06-15 14:03:33 +00:00
David Greenman 3901d8e3f2 Protect map entry allocations with splimp. This is necessary since malloc
can/will allocate map entries at interrupt time. This is similar to a
(splvm) change that was made in the main branch, but much simpler. The
code in the main branch is broken (the thresholds are of such that
freed map entries will accumulate on the non-kernel pool)...so the fix
was re-implemented with just the spl protection and minor algorithmic
simplification.
1996-06-15 12:29:19 +00:00
David Greenman ea881e14a3 Added splbio() protection to active and inactive page queue manipulations.
This is similar to the splvm() protection that was added in the main
branch. It protects the queues from page insertions that can happen during
buffer rundown of asynchronous I/O read-aheads.
1996-06-15 09:58:43 +00:00
David Greenman 765f8d09b1 Brought in fix from rev 1.10: fix off-by-one in structure allocation so
that triple indirect blocks have a chance of working.
1996-06-15 09:25:16 +00:00
David Greenman b4d8bc0d3d Brought in some fixes from main branch: similar to last commit...move
setting of PG_MAPPED (and in this case, PG_WRITEABLE too) to after
pmap_enter() has finished.
1996-06-14 23:23:39 +00:00
David Greenman 4f2f157888 Brought in a fix from main branch: move setting of PG_MAPPED to after a
call to pmap_enter(). Closes a window where PG_MAPPED might be cleared
if the process blocked and someone else does a vm_page_protect(NONE)
before the process unblocks.

Reviewed by:	dyson
1996-06-14 23:21:01 +00:00
Jordan K. Hubbard e0748b411c Merge with HEAD 1996-06-14 18:36:28 +00:00
David Greenman 96a6d85233 Brought in a fix from main branch: close a window in pmap_object_init_pt()
that has to do with the PG_MAPPED flag not being set at the right time,
and PG_BUSY the page rather than doing a vm_page_hold/unhold. This
fixes a potential problem where some mapped pages might go unnoticed by
other parts of the vm system, which can be a real problem if the page(s)
are reclaimed.
Reviewed by:	dyson
1996-06-14 04:34:35 +00:00
David Greenman 0d53a0a640 Brought in fix from main branch: call semexit when appropriate. 1996-06-14 02:26:17 +00:00
Satoshi Asami 8968c81353 Merge from head. I've tried it here and built many packages, it seems
to work fine with -stable.
1996-06-13 06:06:25 +00:00
David Greenman 29f8aa53ae Brought in changes from main branch: move MALLOC of fsnode to avoid a
potential panic during sync.
1996-06-12 03:42:54 +00:00
Wolfram Schneider a01916a698 Merge from HEAD:
chown home directory if don't copy dotfiles
1996-06-12 00:03:35 +00:00
Satoshi Asami 8704e4dc1f Merge with HEAD:
Add man9/cat9, move man/skel -> share/skel, add share/doc.

Noticed by:	ports/editors/beav
1996-06-11 22:04:55 +00:00
Jordan K. Hubbard 9363c0d35b Sync with HEAD. 1996-06-11 10:01:05 +00:00
Bruce Evans 3b7ccb04a9 Brought in the fix from rev.1.33 - use the freespace() macro
instead of buggy explicit code to fix the `Avail' count returned
by statfs() for file systems larger than 11GB.  This also fixes
a minor rounding bug.  The count is still wrong for file systems
larger than 1TB/minfree (normally 128GB).
1996-06-11 05:17:34 +00:00
Bruce Evans e14f11ef9b Brought in the fixes from rev.1.8 - use the freespace() macro
instead of buggy explicit code to fix the `Avail' count for
(non-mounted) file systems larger than 11GB, and don't replace
"Avail" counts of < 0 by 0.
1996-06-11 04:38:08 +00:00
James Raynard c783776133 Bug fix brought in from HEAD as suggested by dg.
Fixed bug in clnt_{tcp, udp}create() where pointers could be free'd
even if they hadn't been successfully malloc()'d.
1996-06-10 20:22:12 +00:00
Andrey A. Chernov 7652784297 Sync with -current 1996-06-10 09:41:49 +00:00
Justin T. Gibbs 2a01c79e30 Detect and report dataphase overruns. Put the adapter into 'Bit Bucket'
mode when this occurs and allow the target to complete the transaction.
Force a retry on overruns since they are usually caused by termination or
cable problems.
1996-06-09 17:33:18 +00:00
Joerg Wunsch e8ec05d06c Merge the fix from rev. 1.28: fix the spl handling, and a deadlock
condition.
1996-06-09 14:25:45 +00:00
Gary Palmer 5a6063ff0a Somehow got missed from the last commit. Stick these in -stable's
attic as they are suffering from nasty bitrot
1996-06-09 11:22:22 +00:00
Gary Palmer ca0e4cb05b Remove devfs from stable. This version is suffering from extreme bitrot 1996-06-09 11:17:35 +00:00
Gary Palmer c981d07473 Bring in changes from revs 1.24 and 1.25 and fix PR 1304: return
EBUSY rather than ENXIO
1996-06-09 11:05:07 +00:00
Jordan K. Hubbard 9cd8157775 Merge from HEAD. 1996-06-09 09:35:01 +00:00
David Greenman baded1b2f2 Backed out changes in revs 1.58.4.2 and 1.58.4.3. The version this was
based on from -current wasn't ready for prime-time yet and the new stuff
is far too green. This reverts the code to what we released in 2.1R.
1996-06-09 08:54:57 +00:00
Paul Traina 171acfbbeb Oops...missed one file in the HEAD sync 1996-06-08 20:25:51 +00:00
Paul Traina a907bb1385 Bring fix for kern/1159 in from HEAD 1996-06-08 20:22:38 +00:00
Paul Traina b1a7e10b62 Bring in changes from head 1996-06-08 20:18:56 +00:00
Paul Traina 1a69aa9f14 Bring in notify changes from head. 1996-06-08 20:13:03 +00:00
Nate Williams 8138815f49 Added a BUGS section to the manpage. Note, this is only relevant to -stable.
BUGS
     This version of fsck may require multiple passes over your disk in order
     to fix all inconsistancies.
1996-06-08 17:28:28 +00:00
Jordan K. Hubbard 473771e53d Merge from HEAD. 1996-06-08 12:06:44 +00:00
Joerg Wunsch 162b1b584b Merge from HEAD:
. preserve the fdisk table if possible,
. allow for disklabel ... auto,
. major cleanup
1996-06-08 11:44:43 +00:00
Joerg Wunsch 1b1cb97915 Teach config(8) about the od driver.
Reviewed by:	[email protected] (Greg Lehey)
1996-06-08 11:39:45 +00:00
Joerg Wunsch 5000f13409 Merge the changes from rev 1.55 into -stable. Required in
particular by some SONY drives.
1996-06-08 11:38:16 +00:00
Joerg Wunsch 8ab74ce9e4 Retrofit the od driver into -stable. It's now stable enough to
deserve a life there, and chances that it compromises some other part
of the system are low.

Reviewed by:    [email protected] (Greg Lehey)

(Should have made it into a single commit, but i've botched this.)
1996-06-08 11:31:03 +00:00
Joerg Wunsch 7a796ac8d9 Retrofit the od driver into -stable. It's now stable enough to
deserve a life there, and chances that it compromises some other part
of the system are low.

Reviewed by:	[email protected] (Greg Lehey)
1996-06-08 11:28:49 +00:00
Bruce Evans c03d25376a Restored rev.1.2.6.1. It was undone by the 3rd mega-commit. 1996-06-08 08:25:28 +00:00
Jordan K. Hubbard 767f366073 Merge changes from HEAD. 1996-06-08 07:15:55 +00:00
Justin T. Gibbs 4559a6b02f Sync with HEAD. 1996-06-08 07:10:57 +00:00
David Greenman 6bd0628fee Brought in fix from rev 1.25: add unit number correctly. 1996-06-08 06:14:15 +00:00
David Greenman 04edb7a671 Brought in fix from rev 1.38: reference count fix for relookup(). 1996-06-08 02:06:08 +00:00
David Greenman ef8edf6df7 Brought in fix from rev 1.30: fix for memory leak when adding a host route
on top of another one.
Brought in fix from rev 1.33: fix for rtfree panic.
1996-06-08 02:02:03 +00:00
David Greenman 20bbc7fba4 Brought in fix from rev 1.38: fix for PF_REMOTE case of ptcwrite() which
was broken in rev 1.22.
1996-06-08 01:40:08 +00:00
Alexander Langer 88c0303515 Merge with HEAD. 1996-06-08 00:55:26 +00:00
Jordan K. Hubbard cdb217b562 Looks like the cut-and-paste monster got somebody - an extra brace was
inserted here.  Please compile before committing! :)
1996-06-07 06:35:40 +00:00
Jordan K. Hubbard 144554db5f OK, I said I wasn't going to touch -stable, but I'm afraid I'm still going
to have to muck around in release/ in order to make 2.1.5 happen so consider
this the exception... :)
1996-06-06 22:53:21 +00:00
Marc G. Fournier 16d158e215 Brought in a change from -current to ftp.c that reports transfer states
in "human" form instead of "scientific notation"
1996-06-06 21:42:31 +00:00
Jordan K. Hubbard 48b664f842 Make info.sh ignore other bogus files.
Submitted-by: wollman
1996-06-06 20:54:24 +00:00
Nate Williams 0572714c9d Bring in KNF formatting changes from HEAD. 1996-06-06 00:13:19 +00:00
Nate Williams abbe627ca1 Fix typo I made when fixing a previous typo. 1996-06-06 00:08:47 +00:00
Nate Williams 83388ccf94 Bring in changes from the HEAD.
Note, I'm only bringing in the bare minimum necessary to support doing
reverse PTR using CNAME's, which is necessary for the
'Classless in-addr.arpa delegation' draft, which is now in use by many
ISPs.  This file is now the at the 'bind-4.9.3-REL' revision level.

Inspired by:	John Capo
1996-06-06 00:05:42 +00:00
Nate Williams 48aa14f0dc Bloat the etc tree in stable with the PCCARD files. I also fixed the
bogus tags on the files and made them branch tags.
1996-06-05 21:20:22 +00:00
Nate Williams edea2e61c5 Add an 'echo ""' that was on the end of the file on the previous version
that I missed when I updated the stuff after mega-commit.
1996-06-05 21:19:03 +00:00
Nate Williams aa7489f93d Mega-commit cleanup. Don't use newsyslog(8) for logfile rotations since
it doesn't exist in -stable, so revert to using the old methods.
1996-06-05 20:28:15 +00:00
Nate Williams d8bba1694b Whoops, forgot one.
Fixed bogus changes from mega-commit 3.  This reverts the files to their
revisions *before* the mega-commit but makes sure any subsequent fixes
are brought in.
1996-06-05 19:50:37 +00:00
Nate Williams 7c5e76d052 Fixed bogus changes from mega-commit 3. This reverts the files to their
revisions *before* the mega-commit but makes sure any subsequent fixes
are brought in.

TODO - netiso
1996-06-05 19:49:29 +00:00
Jordan K. Hubbard 198d8d0786 Back out the previous change - apparently it causes problems
elsewhere!  Sigh..
1996-06-05 09:07:10 +00:00
Jordan K. Hubbard 14fb3f9b4a Resurrect Joerg's 2.1 commit (it was on my list, I just skipped over it
by mistake).  CVS is acting _very_ strangely here; claims everything in
/sys/sys for 2.1 is in conflict, even if I remove it every time.  I'm starting
to REALLY HATE CVS and will do no more merge work with it once the tree is
working again.  I've had it with trying to merge things with CVS - that's it,
I quit!  I've merged my last change into 2.1.
1996-06-05 08:22:35 +00:00
Jordan K. Hubbard be212f13d4 Roll something forward to -current; apparently this was moved back erroneously. 1996-06-05 08:15:31 +00:00
Jordan K. Hubbard 78e55a1f29 This 3rd mega-commit should hopefully bring us back to where we were.
I can get it to `make world' succesfully, anyway!
1996-06-05 02:59:00 +00:00
John Polstra 885f2f31b4 Merge from main branch 1.16 -> 1.17: "persist" state bug fix. 1996-06-04 23:34:06 +00:00
Nate Williams 5baa9b6d14 Bring in changes from the HEAD.
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:42:29 +00:00
cvs2svn 38f70e7a6e This commit was manufactured by cvs2svn to create branch 'RELENG_2_1_0'. 1996-06-04 19:09:51 +00:00
Nate Williams ed1cde0b4a Update from HEAD.
M_DEVBUG -> M_DEVBUF.
1996-06-04 17:51:21 +00:00
Nate Williams 2309c4a999 Bring in changes from the HEAD.
Fix typo.
1996-06-04 17:38:28 +00:00
David Greenman 78983fc28f Implemented zpfind() which returns the struct proc * of a zombie PID.
Used the above as part of a fix for an architectural flaw in the way that
sysctl_doproc works. sysctl_doproc can block while traversing the proc
lists and the state of the list may have changed during this time. The
fix is to check that the process still exists, and if not, restart the
loop from the beginning.

Note that I don't understand how to unwind SYSCTL_OUT things in -current,
SO SOMEBODY ELSE WILL HAVE TO IMPLEMENT THIS FIX THERE!!! (Poul?)
1996-06-04 02:46:09 +00:00
David Greenman 1b7cb109d3 Brought in (most) of the changes in revs 1.24, 1.25 and 1.43: Fix for
set-id ktrace bug, some cosmetic changes (brought in to make the merge of
other fixes possible), and use kmem_alloc_wait/kmem_free_wakeup to
eliminate a transient string space allocation failure due to running out
of map space.
1996-06-04 02:11:37 +00:00
Gary Palmer 49d406e646 Merge from head:
Close a file descriptor leak. Possibly closes PR #1212
1996-06-03 21:39:23 +00:00
John Fieber da18bb0244 Fix incorrect handling of .cxx files in default rules. 1996-06-03 13:26:16 +00:00
Joerg Wunsch e3de2fcdac Merge the corrections from rev 1.4. 1996-06-03 10:45:13 +00:00
Joerg Wunsch 1f7e52748f Merge from HEAD: add a prototype for ftok(). 1996-06-03 10:44:25 +00:00
Jordan K. Hubbard 37a1e3d683 Revert these back on advice of wpaul. 1996-06-03 07:46:11 +00:00
Jordan K. Hubbard e2cc078246 Whoops - this part should not have come across. 1996-06-03 06:57:52 +00:00
Jordan K. Hubbard accd7f182e Phase 2 of merge - also fix things broken in phase 1.
Watch out for falling rock until phase 3 is over!

libc completely merged except for phkmalloc & rfork (don't know if David
wants that).

Some include files in sys/ had to be updated in order to bring in libc.
1996-06-03 05:12:29 +00:00
David Greenman c3287ad65e Fix declaration of ps_strings. 1996-06-03 04:09:36 +00:00
Joerg Wunsch 0d5d5c6590 Retrofit the change from rev 1.54: make the bootverbose case slightly
more verbose to break the long silence after the ``npx0'' message.
1996-06-02 19:24:05 +00:00
Joerg Wunsch 10c40a2962 Merge from HEAD: hide the ``wrong sig'' message behind bootverbose. 1996-06-02 19:00:18 +00:00
Gary Palmer eef505415e Close PR i386/1223. Correct typo in comment. 1996-06-02 15:10:07 +00:00
Gary Palmer cc36530818 Correct spelling error in comment 1996-06-02 00:15:19 +00:00
Gary Palmer 5ee6f4079a Bring in changes from HEAD. Set ifnet.baudrate for ethernet & FDDI also.
Reviewed by:	 Garrett Wollman
1996-06-02 00:01:51 +00:00
Jordan K. Hubbard 916897d602 Merge from HEAD 1996-06-01 20:52:34 +00:00
Bruce Evans e2750f9798 Brought in the fix from rev.1.3: clean up the FP stack before returning. 1996-06-01 18:02:15 +00:00
Wolfram Schneider 4b8fece1be Merge from HEAD:
add ruid and rgid to file /proc/<pid>/status
this allow killall(1) to kill suid programs
1996-05-31 23:39:16 +00:00
Mike Pritchard eb4b0b134c Bring in update.4 from -current. 1996-05-31 22:04:05 +00:00
Paul Traina fdc6bfeb8d Fix ioctl() operations...nasty typo 1996-05-31 17:35:07 +00:00
Bill Paul d2862cf2f9 Patch the -stable yppasswdd so that it doesn't try to call getpwnam().
The problem with doing this is that getpwnam() will process all the special
inclusion and exclusion lines in /etc/master.passwd, including substitution.
So, for example, if you have a line on your NIS master server that says:

+@disallowed-users:::::::::/etc/nologin

Then yppasswdd will end up with a user record that has /etc/nologin as
a shell. This in turn will get propagated into /var/yp/master.passwd
when an update is performed, and the user's shell will be changed to
/etc/nologin, thus locking them out of the system.

To fix this, yppasswdd now retrieves the user's master.passwd record
directly from ypserv using a call to yp_match(). This bypasses all
the inclusion/exclusion/substitution processing in getpwent(3).

Note that rpc.yppasswdd in FreeBSD-current does not suffer from this
problem: it digs directly into the map database files when searching
for user records, which means it not only bypasses getpwent(3), it
will also work even if your NIS master server isn't set up as an NIS
client. I could have done something similar here, but that would have
meant adding DB interface code which would have been much more complicated.

Bug pointed out by: Tom Samplonius
1996-05-31 14:47:45 +00:00
Peter Wemm 8728e9a57f Lookup value of KERN_PS_STRINGS instead of using a value derived from
constants that can be overridden at kernel config time that are not
visible while running that kernel.

Also, dont dig into /proc/<pid>/mem to read process space if working
on a crashdump.
1996-05-31 08:13:18 +00:00
Peter Wemm 1ee58d620a Look up KERN_PS_STRINGS sysctl, and use that if it is present instead of
the calculated value from a whole series of values that can be overridden
at kernel config time, making the result invalid.
1996-05-31 08:09:42 +00:00
Peter Wemm 32e3836bbe Add sysctl hooks for user-mode setproctitle() and libkvm to see,
taken from -current, but implemented in old-style sysctl.
1996-05-31 08:04:12 +00:00
Peter Wemm 49e0e08d6d Add entries for KERN_PS_STRINGS and friends to allow setproctitle() and
libkvm to adapt to the kernel VM layout changing. (such as on wcarchive,
and some of the stuff I'm experimenting with at the moment.  -current
already has this, so that 2.1 programs that have setproctitle statically
linked will work on 2.2 even if 2.2 ends up with PS_STRINGS in a different
location)

Also, added the somaxconn etc entries, because of the way that the
user-mode sysctl program is built and it was either add the real things, or
some placeholder stubs.
1996-05-31 07:58:47 +00:00
Justin T. Gibbs d5977acceb Stop the selection hardware before acking the SELTO interrupt. The rest
of the main branch changes will come back once they've seen more testing.
1996-05-31 06:37:53 +00:00
Alexander Langer 286216e0ce Bring in changes from 1.22 (disallow LKM manipulations in secure
mode) into stable.
1996-05-31 01:41:54 +00:00
Jordan K. Hubbard b64ae2d968 Bring in just some of the RUNE stuff from HEAD. I'm holding off
on any more aggressive merging of libc for now.
1996-05-30 16:16:37 +00:00
Jordan K. Hubbard 26aeafec71 Merge in symorder (larger usr.bin merge to follow, this just handles the
LKM building problem I just noticed).
1996-05-30 04:52:13 +00:00
Paul Traina 1bdcc92bcc Merge security changes in from head.
Submitted by:	smpatel
1996-05-30 02:31:00 +00:00
Jordan K. Hubbard d9515625fd Remove extra copy of vasprintf.c 1996-05-30 02:15:28 +00:00
Jordan K. Hubbard 1790d7b066 Remove a redundant copy of vasprintf.c 1996-05-30 02:14:12 +00:00
Jordan K. Hubbard ad465d0820 Bring the vasprintf() family of routines in - there are many needlessly
redundant copies in -stable as well.
1996-05-30 02:10:02 +00:00
David Greenman ede96f76f2 Brought in fixes from current: fix for panic caused by dereferencing
(proc)->p_session of an exiting process. This problem manifested itself
via a panic in fill_eproc() when running "top".
1996-05-30 01:24:41 +00:00
Jordan K. Hubbard 5c6b0b3917 Merge from HEAD, except:
Clients that used gnumalloc still do, despite the merge.  We're not
	bringing phkmalloc over.

	Thread stuff left out.

	PCCARD support left out.
1996-05-29 22:38:37 +00:00
Jordan K. Hubbard d2d02801b9 Merge from HEAD. 1996-05-29 04:37:20 +00:00
Jordan K. Hubbard 85d8618c07 Merge from HEAD. 1996-05-28 22:51:19 +00:00
John Polstra 6e0323e4cf Bring in manual page fixes from main branch 1.2 -> 1.4. 1996-05-28 19:06:24 +00:00
Jordan K. Hubbard e46d49258d Merge from HEAD 1996-05-28 18:31:13 +00:00
Jordan K. Hubbard 43615d1ed6 Merge with HEAD. 1996-05-27 23:59:08 +00:00
John Polstra 77bd1b2de8 Bring change 1.3 -> 1.4 into -stable: bug fix for erroneous mbuf display. 1996-05-27 23:22:29 +00:00
Justin T. Gibbs 0bdfca6fa5 Merge with HEAD:
Fix a race condition in p_mesgout* and inb* code that could allow a
phasemiss to sneak by without detection.  This should fix the
Wide/Narrow boot problems that have been reported since this bug
caused the driver ignore a narrow target rejecting wide negotiation.
1996-05-27 23:18:28 +00:00
Joerg Wunsch ad4bc993e9 Merge from HEAD:
Explain ``ESC-Enter'' to leave `ee' in the main help window.
1996-05-27 21:08:09 +00:00
Bruce Evans 64ac1deeaf Nuke the local, broken, termcap.h so that the system one gets used.
The nuking of it in -current on 95/08/04 was overlooked when all
the -current changes were merged into pre-2.1 on 95/08/30.

This should fix PR 1255.
1996-05-27 17:26:08 +00:00
Jordan K. Hubbard daf37a5fad Merge with HEAD. 1996-05-27 16:06:55 +00:00
Jordan K. Hubbard 725e03410b Add -lmd for boot_crunch (from HEAD). 1996-05-27 16:01:57 +00:00
Jordan K. Hubbard 4c4930c846 Fix an evil bogon in the Makefile. 1996-05-27 14:11:46 +00:00
Marc G. Fournier 0ad8632147 Wrong copyright, wrong place 1996-05-27 06:56:42 +00:00
Marc G. Fournier 319d761698 Added in appropriate copyright & RCS Id 1996-05-27 05:21:03 +00:00
Jordan K. Hubbard 919766f209 Remove the x11 subdirectory and its contents (as in -current) - X is a separate
distribution, as are its games.
1996-05-27 01:38:19 +00:00
David Greenman 4078969762 Brought in fix from rev 1.26: fix for "vm_page_free: freeing busy page"
panic.
1996-05-26 18:35:22 +00:00
Joerg Wunsch 58f8c280ed Merge the fix from rev 1.2:, closes PR # bin/1244: rs(1) dumps core with -s 1996-05-26 18:27:55 +00:00
David Greenman 6e6ddf8eda Retrofitted a portion of rev 1.73: be sure to start inactive scan over if
"next" page is no longer on the inactive queue. This fixes a potential
panic during heavy paging.
1996-05-26 18:01:16 +00:00
Justin T. Gibbs efec88c18b Merge with HEAD:
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.

Closes PR:i386/1243
Submitted by:   [email protected]
1996-05-24 15:25:16 +00:00
Jordan K. Hubbard 0631427a4f Sync from HEAD 1996-05-24 06:09:44 +00:00
Justin T. Gibbs d33c9001a1 Merge with HEAD:
Use the right patch file this time.
1996-05-23 15:14:40 +00:00
Gary Palmer a15d7d6877 Bring in change from rev. 1.8. Fix missing semicolon problem. 1996-05-23 02:03:19 +00:00
Paul Traina 5d1eca7c67 Remove seuid bit, it's not necessary. 1996-05-22 15:54:52 +00:00
Paul Traina 1eef9d2ac7 Call groff directly to avoid nroff shell script
Submitted by:	peter
1996-05-22 15:54:40 +00:00
Justin T. Gibbs 45667ce06d Merge with HEAD:
Setup ULTRAEN in SXFRCTL0 to match the syncrate we are using during the
call of ahc_scsirate.  Otherwise, the proper setting may not get set until
the next reconnection/selection.

The saved_queue used to re-order the QINFIFO during error recovery or
certain SCB paging operations should be an array of u_chars not ints.

saved_queue type error pointed out by: Noriyuki Soda <[email protected]>
1996-05-22 15:34:55 +00:00
Paul Traina eaa7cff9c8 Bring in changes from head 1996-05-22 05:44:12 +00:00
Dima Ruban b27bd16ec7 add missed "\n" when printing an address. 1996-05-22 00:27:36 +00:00
Dima Ruban f0fef65807 "board not responding" -> "board is not responding"
Reviewed by:	gibbs
1996-05-21 23:33:52 +00:00
Justin T. Gibbs ea0a451a2a Merge with HEAD.
Detect the lack of BIOS initialization by looking for all 1s as well as
all 0s.
1996-05-21 18:46:47 +00:00
Justin T. Gibbs 52ce739856 Merge with HEAD.
Dynamically Enable/Disable Ultra mode on a per target basis.  Remove
broken Ultra sync rate entries.  Remove an unneeded printf.  Turn a
panic into a printf since the sequencer will recover if a bad phase
is detected.
1996-05-21 18:46:05 +00:00
Justin T. Gibbs b2fa969f88 Merge with HEAD. Dynamically Enable/Disable Ultra mode on a per target
basis.
1996-05-21 18:43:51 +00:00
Bill Paul 1578fd8c47 Sync with HEAD: bring over fix for PR #1207 and take out one unneeded
instance of free(result).
1996-05-21 16:13:32 +00:00
Jordan K. Hubbard 4d368f5da3 Bring over verbose `make world' feature from -current. 1996-05-21 15:44:17 +00:00
Paul Traina 0bebdde676 Clean out all the FreeBSD 2.2 code to avoid confusion 1996-05-21 00:41:26 +00:00
Satoshi Asami d8ad5a9a3f Merge from HEAD: much nicer format of output from the "superblock
backups" section when you are dealing with a >5GB partition.
1996-05-21 00:35:04 +00:00
Jordan K. Hubbard a0c0dd6046 Invoke proper gzip 1996-05-20 12:52:08 +00:00
cvs2svn 60ef7d845f This commit was manufactured by cvs2svn to create branch 'RELENG_2_1_0'. 1996-05-19 19:26:22 +00:00
Nate Williams 5ab6eb11a0 Bring in changes from the HEAD.
Fixed *annoying* error where the following error is generated.

Rebuilding locate database:
stty: stdin isn't a terminal
TERM: Undefined variable.
1996-05-18 20:33:19 +00:00
Paul Traina 9592440293 Disable setuid permission for mount_union(1).
This covers the security problem descibed in SA-96:10 and Jeff says that
when we upgrade to Lite2 (which fixes this problem), mount no longer needs
to be setuid, so we'll never be going back.

Submitted by:   hsu
Reviewed by:    pst
1996-05-17 22:46:56 +00:00
Garrett Wollman 9a08fb3f11 Merge vfsloaD(3) bug fix from head. 1996-05-17 18:20:56 +00:00
Jordan K. Hubbard a59bf652cb Smash this into conformance again. I'm just trying to test a 2.1-snap
build right now and need this to work.  Talking with Peter now about
a better solution to my merging problems.
1996-05-16 13:42:58 +00:00
Jordan K. Hubbard 7635313216 Merge from HEAD. 1996-05-16 12:17:12 +00:00
Jordan K. Hubbard 6334fa7d69 Comment out BUILDNAME and CHROOTDIR. 1996-05-16 03:22:02 +00:00
Mike Pritchard 95d47841b3 Bring in changes from main brnach: allow the user to
specify a range of uids when using the -p option.
1996-05-15 19:22:08 +00:00
Joerg Wunsch 69809bc570 Merge from rev 1.84: mention Ernst Winter for the 2.88 MB floppy drive. 1996-05-15 17:35:24 +00:00
Nate Williams e48bc1519c Bring in changes from the HEAD.
- makedefs and hack.onames.h build
- Changed install to ${INSTALL}
1996-05-15 17:00:07 +00:00
Satoshi Asami 13691f5029 Merge from HEAD:
Add #ifndef/#endif around the "#define CCD_OFFSET 16", so you can override
it in your kernel config file.

Requested (in essence) by:      phk
1996-05-13 09:18:26 +00:00
Satoshi Asami a35d83dc32 Merge from HEAD:
Leave 16 lines in front of each component partition.  It's now safe to
use sd87a or sd237e even if they start at the beginning of the slice.

You can also use sd85c if you prefer, although you need to change the
type field in the disklabel to "4.2BSD".
1996-05-13 08:39:02 +00:00
Justin T. Gibbs e9751602f4 Merge with HEAD:
Fix a brain-o.  The scratch ram on aic78X0 controllers is initialized to 0x00
not 0xff after POST, so test for that when trying to determine if a BIOS
intialized the card for us.
1996-05-12 16:26:23 +00:00
Joerg Wunsch 7b1985dd1c Merge from rev 1.149:
Fix the "well-known retries bug" (a logic-o).
1996-05-12 12:38:56 +00:00
Justin T. Gibbs 761e54501e Free our device information in one error case in the driver probe. 1996-05-12 01:50:33 +00:00
Justin T. Gibbs 272462119b Merge with HEAD.
Add io_port to SCSICONF when
Add missing '+ io_port' to two outbs.
Add missing splx() in one error case during probes.
Remove unnecessary return and break.

Submitted by: Noriyuki Soda <[email protected]>
1996-05-12 01:47:13 +00:00
Joerg Wunsch 11d48d1b06 Merge the hack from rev 1.148:
Don't spin-loop forever waiting for a successful keyboard reset.
1996-05-11 23:18:22 +00:00
Justin T. Gibbs 694c80d174 Merge with HEAD. Add scheme for determining if the BIOS was installed or
not.  THis allows us to honor the settings made by the BIOS on chips that
don't have a SEEPROM attached.
1996-05-10 16:43:19 +00:00
Justin T. Gibbs 331e712d81 Merge with HEAD. Only reset the channel if the user asked us to. Add
support for probing channel B before channel A on twin channel adapters.
1996-05-10 16:42:17 +00:00
Justin T. Gibbs b46ed566c4 Merge with HEAD. Honor the SCSIID, bus off time, and primary channel selection
set by the ECU even if the BIOS is not installed.
1996-05-10 16:41:24 +00:00
Justin T. Gibbs a246afa542 Merge with HEAD. Add bit definitions for determining if we should reset
the scsi bus on probe, probe the B channel first, etc.
1996-05-10 16:39:43 +00:00
John Polstra a6bf85e2e9 Bring in clarification of FNM_PERIOD flag from main branch (1.2 -> 1.3). 1996-05-10 00:35:55 +00:00
Jordan K. Hubbard 250f2cb4d4 1. Merge latest sysinstall changes.
2. Nuke libdisk from here in preparation for a move to /usr/src/lib, as in
   -current.
3. Remove explicit references to libdisk in Makefile (which will probably
   be merged outright from the HEAD later, but this will do for now).
1996-05-09 13:34:21 +00:00
Jordan K. Hubbard 5db695f1b4 Add groff to build-tools target so we get eign installed.
Suggested by:	rgrimes
1996-05-09 06:15:02 +00:00
Jordan K. Hubbard 254d331a9b Remove locale directories properly before linking to them. 1996-05-09 05:58:59 +00:00
John Polstra 75cf23ab3f Merge in bugfix from main branch 1.1 -> 1.2. Fixes problem of "time -l"
dumping core with a floating point exception.
1996-05-08 15:33:10 +00:00
Bill Paul 1238eeed5a Bring in one line fix from HEAD: take out unneeded free(result)
from _havemaster().
1996-05-07 20:54:12 +00:00
Jordan K. Hubbard 3ce1dfc1a8 Merge from HEAD for a fuller, rounder examples directory. This also
drags in some of the new locale directories, but I don't see as they
hurt anything.
1996-05-07 20:15:49 +00:00
Nate Williams dc33a5c23e Bring in changes from the HEAD.
Format changes.
1996-05-07 20:13:11 +00:00
Nate Williams 0be361e833 Bring in changes from the HEAD:
Create share/examples/{meteor|sliplogin|slattach} in the mtree step now
that we're using the Makefile from -current which no longer creates
them.
1996-05-07 15:34:50 +00:00
Gary Palmer d2809bd279 Bring in a change from the main branch:
Record PID in /var/run/inetd.pid and document same.
1996-05-07 03:12:00 +00:00
Poul-Henning Kamp 6c96d2c008 Merge from head. 1996-05-06 20:32:01 +00:00
Peter Wemm d23848c2c4 Part of rev 1.38: just tweakable parameters, no sysctl (it's too painful
under 2.1)
1996-05-05 18:17:06 +00:00
Peter Wemm bcc4b23e86 Rev 1.39 of si.c: Interrupt/poll loop reorganise.
(This was actually tested under -stable first and ported to -current. :-)
1996-05-05 18:00:30 +00:00
Peter Wemm de1781a6cf Rev 1.2 from -current: avoid possible trademark 1996-05-05 17:57:44 +00:00
John Polstra cd74604cdd Update an offset field for i386 a.out core files, so that the program
name comes out right again.
1996-05-04 15:35:04 +00:00
Jordan K. Hubbard a4f38bd841 Bring this much nicer, far more functional Makefile over from -current. 1996-05-04 13:57:02 +00:00
Jordan K. Hubbard 135d378ec3 Update from HEAD 1996-05-04 11:18:32 +00:00
Satoshi Asami 02cb6e8506 Brought in from HEAD: Connect ccd man page and ccdconfig to parent
Makefiles.

Ok'd by:        peter
1996-05-04 08:39:27 +00:00
Paul Traina 8c1fca893f Bring in qcam driver 1996-05-04 07:18:45 +00:00
Paul Traina bfbc575b27 Bring qcam driver into -stable 1996-05-04 07:15:15 +00:00
Jordan K. Hubbard 9c09dd25d9 Sync with HEAD 1996-05-03 23:32:32 +00:00
Joerg Wunsch 812a0e0392 Update from HEAD: man page goes to section 8. 1996-05-03 18:11:02 +00:00
Satoshi Asami 8d17804411 Bring in ccd support from -current. Note that conf.c has two missing
entries in front of ccd (stl and qcam) and the ccd driver won't work
(wrong character special major) until someone fills the two slots.
1996-05-03 06:02:49 +00:00
Joerg Wunsch 861e44f806 Merge from HEAD:
Replace the dependency of `install' from `kernel' by a test for the
existance fo `kernel'.

Submitted by:   peter
1996-05-02 21:43:04 +00:00
Joerg Wunsch b7e44174a7 Add a man page. 1996-05-02 21:42:18 +00:00
Mark Murray d7390d0da0 Merge with HEAD. Patch docs fixes. 1996-05-02 17:04:59 +00:00
John Polstra c77d3aa154 Bring in changes from main branch.
Makefile 1.15 -> 1.18: Safer installation on a running system.
rtld.1   1.2  -> 1.3:  Add LD_PRELOAD, remove LD_NO_INTERN_SEARCH and
                       LD_NOSTD_PATH.
rtld.c   1.27 -> 1.33: Major speedups, code cleanups, LD_PRELOAD support.
1996-05-02 16:14:05 +00:00
John Polstra 3092beeb7c Bring in minor manual page fixups from main branch 1.7 -> 1.8. 1996-05-02 16:09:55 +00:00
John Polstra 658bcc5f0e Bring in small speedups from main branch 1.2 -> 1.3. 1996-05-02 16:08:53 +00:00
John Polstra b2f01a7ab6 Bring in changes from main branch.
ld.c    1.29 -> 1.31: open/fopen error checking, remove LD_NOSTD_LIB
ld.h    1.14 -> 1.16: prototypes for new functions in shlib.c
lib.c   1.15 -> 1.16: open/fopen error checking
shlib.c 1.13 -> 1.15: new functions for dynamic linker
1996-05-02 16:07:33 +00:00
Bill Paul f5dda3dad8 Sync with HEAD: simplify NIS marker keys 1996-05-02 16:03:30 +00:00
Bill Paul a2da4d8617 Sync with HEAD: encode NIS master.passwd entries in a simpler manner. 1996-05-02 16:02:42 +00:00
Bill Paul 759761b0c1 Merge with HEAD. Revamp the NIS netgroup inclusion/exclusion code. 1996-05-02 16:01:19 +00:00
David Greenman c99f1d30b8 Fixed two oversights pointed out to me by dyson:
1) remove unused assignment of "mpte" in pmap_remove()
2) retrofit new pmap_protect() from -current
1996-05-02 15:07:05 +00:00
David Greenman 0be7b5f27f Brought in fix from rev 1.21: initialize p_vmspace to 0 so that
pmap_growkernel doesn't kill us.
1996-05-02 12:09:04 +00:00
Mike Pritchard 078f9c1287 Bring in changes from main branch: various man page cleanups. 1996-05-01 23:21:43 +00:00
Mike Pritchard 21ce69b458 Bring in changes from main branch: some of my various man page cleanups
from the last few months
1996-05-01 22:44:14 +00:00
Mike Pritchard e3857bbe00 Bring in changes from main branch: fix a man page xref, an error
description and a typo.
1996-05-01 22:28:58 +00:00
Bruce Evans d1fbe51ac3 Brought in fix from rev 1.146: fixed a race that caused panics in kernel
printfs.
1996-05-01 04:01:29 +00:00
Joerg Wunsch 710a102eda Merge from HEAD:
Correct a typo.
1996-04-30 05:21:14 +00:00
Bill Paul 7ca69134ba Sync with HEAD. Closes a PR (rlogind dumps core when netgroups are
used in /etc/hosts.equiv and /etc/netgroup doesn't exist), fixes another
bogon that I discovered independently (_yp_innetgr flag not reset at
the right time) and small performance tweak.
1996-04-29 15:05:55 +00:00
Justin T. Gibbs 88a42dd7be Merge with HEAD. 1996-04-28 19:47:54 +00:00
Justin T. Gibbs 3bec1d3130 Merge with HEAD.
Update my copyright.
Allow SCB paging on aic7770 chips Rev E or greater.
1996-04-28 19:38:18 +00:00
Justin T. Gibbs d2d743d878 Merge with HEAD.
Allow 4 bit host adapter SCSI ids for wide cards.
Allow SCB Paging to be turned on.
Add support for the aic7850, aic7855, aic7860.
1996-04-28 19:37:09 +00:00
Justin T. Gibbs f91b4e7ccc Merge with HEAD.
Implement SCB PAGING.
Fix timeout handler bugs.
Fix bug in RESTART_SEQUENCER.
1996-04-28 19:34:00 +00:00
Justin T. Gibbs 3714b6c2cb Merge with HEAD.
Implement SCB PAGING. Fix some bugs in find_scb.
1996-04-28 19:33:05 +00:00
Joerg Wunsch ff17e8c3ab Merge from HEAD:
Add entry for xterm-color.
1996-04-28 18:21:51 +00:00
Joerg Wunsch 2e25e8604b Merge from HEAD:
Make `install' depend on `kernel'.
1996-04-27 07:31:40 +00:00
Satoshi Asami f2c9b7539a Backport this to 2.1-stable. 1996-04-27 06:57:54 +00:00
cvs2svn 9b7ce22cbf This commit was manufactured by cvs2svn to create branch 'RELENG_2_1_0'. 1996-04-26 21:35:12 +00:00
David Greenman fa70835c8d Fixes for a couple of minor bugs:
1) allocate map VM from the kernel_map, not the kmem_map.
2) update map hint properly when simplifying a map and remove unnecessary
   restriction on object->paging_in_progress.

   The above problems wouldn't have caused any panics, and it's unlikely
that there were any noticeable effects due to the bugs...but they're bugs
nonetheless.

Submitted by:	dyson
1996-04-26 04:12:18 +00:00
Paul Traina d50feef990 Bring in security fix from -current. 1996-04-24 20:20:00 +00:00
David Greenman a42f801c98 Retrofitted much of the substance of the changes in -current, minus some
of the optimizations. Most of this is a rewrite to get rid of the inline
assembly.  I've been seeing some very strange page table related panics
on wcarchive with the old code; the current thinking on this is that the
inline assembly in pmap_remove isn't getting along with the gcc code
generator for some reason (possibly due to a bad or missing register
constraint) and in any case the problems seem to disappear with the C
(new) version of this code.

Reviewed by:	dyson
1996-04-24 05:58:06 +00:00
Nate Williams 822aa5fd10 Bring in changes from the HEAD:
- This code adds some backwards compatability hacks for buggy APM BIOS
  implementations, and synchronizes us with the Nomad's latest code.

This code is based on the Nomad code, but heavily hacked by me.

Reviewed by:    phk
Submitted by:   the 'Nomads'
1996-04-23 19:59:52 +00:00
Nate Williams e7542a7cb4 Bring in changes from the HEAD:
Add the APM hooks into the generic pccard kernel files.  With this code
in place device drivers can now register power-down/power-up routines so
that we can use common routines to power-up/power-down cards for
insert/removals, suspend/resume, etc..

Reviewed by:    phk
Submitted by:   the 'Nomads'
1996-04-23 16:09:07 +00:00
Nate Williams 9e17b25c75 Bring in changes from the HEAD:
Updated the laptop 'kludge' file.  Hopefully this can go away soon.

Submitted by:   The 'Nomads'
1996-04-22 22:30:38 +00:00
Paul Traina 9fe08c001d Typo shmrsh -> smrsh 1996-04-22 20:31:16 +00:00
Nate Williams 3dd53e7ad4 Whoops, this got missed.
- Add commented out apm support to GENERIC.
1996-04-22 19:49:45 +00:00
Nate Williams e6d31664bc - add apm to the GENERIC kernel (commented out), and add some comments
regarding apm to LINT
- Disabled the statistics clock on machines which have an APM BIOS and
  have the options "APM_BROKEN_STATCLOCK" enabled (which is default
  in GENERIC now)
- move around some of the code in clock.c dealing with the rtc to make
  it more obvios the effects of disabling the statistics clock

Reviewed by:	bde
1996-04-22 19:48:26 +00:00
Paul Traina 84b89df2a7 Bring in change from HEAD.
Create /usr/libexec/sm.bin directory
1996-04-22 07:04:22 +00:00
Paul Traina 0d17f6a08b Bring in changes from head. Build and install smrsh. 1996-04-22 06:34:38 +00:00
Garrett Wollman 91be4928b6 Pull Mountain time fix over into -stable. 1996-04-19 15:17:04 +00:00
Nate Williams de5a5ed6a2 Bring in changes from the HEAD.
- Addition of my name to the APM Copyright
- More code cleanups
- #ifdef DEBUG debugging code
- More consistant printfs
- Better handling of the apm_int() assembly code (mostly from Bruce Evans)
- Save/restore the FS data segment.

Reviewed by:	bde
1996-04-18 19:26:19 +00:00
Nate Williams 45534a87df Added comment out psm0 (PS/2) mouse device entry so that users can find
it easier.
1996-04-18 04:04:21 +00:00
Joerg Wunsch e36212e172 Merge from HEAD:
Document the possible EPERM return.

Submitted by:   [email protected] (Warner Losh)
1996-04-17 20:53:24 +00:00
Joerg Wunsch 03bbd3019d Merge from HEAD:
Mention swapinfo as .Nm, so it will be referenced by mkwhatis.
1996-04-17 20:52:49 +00:00
Joerg Wunsch 6bb17fec07 Pull the fix from rev. 1.53 into -stable, after receiving some
confirmation from the users.
1996-04-15 17:14:12 +00:00
David Greenman 405b22bceb Brought in fixes from -current: rev 1.20 of tcp_output.c, and 1.16 of
tcp_timer.c...time-out connections in the CLOSING state better.
1996-04-15 03:49:53 +00:00
Bruce Evans 4a23cacbbc Brought in fifo fixes from revs 1.130 and 1.140: don't change the fifo
settings for the non-speed of 0.
1996-04-13 15:01:25 +00:00
Mark Murray dcb4a4aa2a Merge with HEAD: split libcrypt and libcipher man pages. 1996-04-13 08:24:41 +00:00
Mark Murray e8fbbfaace Dang. Forgot to remove this. 1996-04-13 08:14:19 +00:00
Mark Murray e24e5eb9dc Merge with HEAD: Split libcrypt and libcipher man pages. 1996-04-13 08:12:29 +00:00
Marc G. Fournier aadbae2e22 nfsd now defaults to UDP if no flags given on command line 1996-04-13 06:14:51 +00:00
Mike Pritchard 4d3056d654 Bring in typo fix from main branch.
Closes pr#1137.
1996-04-13 02:12:15 +00:00
Bruce Evans 83576757b0 Brought in change from rev.1.37: fix comparison of wrong field against
EXTPROC.
1996-04-12 07:45:07 +00:00
Dima Ruban 63cdbc0be9 Comment both examples because certain security reasons. We do have
it in -current, and I've no idea why we didn't have it in -stable.
1996-04-12 06:14:53 +00:00
David Greenman c3006c0250 Brought in change from rev 1.70: add spl0() to vmdaemon. 1996-04-12 00:43:08 +00:00
David Greenman 8f83184f65 Fix weird patching snafu that somehow snuck in - what should have been
"buflen" was "len" instead. I might have gotten my slcompress/pppcompress
patches mixed up (this being the only difference).
1996-04-11 21:01:38 +00:00
Mark Murray 33f3008eb8 Merge with HEAD an improved Index: priority fix. 1996-04-11 10:33:45 +00:00
David Greenman 50dae86932 Fix editing mistake in the last commit...sorry. 1996-04-11 08:22:31 +00:00
David Greenman 565be2e534 Brought in fix from rev 1.5: Fix panic: check header length before copying
header.
1996-04-11 08:18:05 +00:00
Marc G. Fournier a6acf5ce35 removed xrefs to icheck(8), ncheck(8) that don't exist 1996-04-11 07:52:20 +00:00
Marc G. Fournier 4fbd64882b added ports-www to supfile 1996-04-11 07:41:08 +00:00
David Greenman e356442fbe Bugfix based on rev 1.7 of slcompress.c in -current:
When cslip gets an uncompressed packet, it attempts to save off the TCP/IP
header for use in decompressing subsequant packets. If cslip gets garbage
(such as what happens when there is a port speed mismatch or modem line
noise), it will occasionally mistake the packet as a valid uncompressed
packet. When it tries to save off the header, it doesn't bother to check
for the validity of the header length and will happily clobber not only
the cslip data structure, but parts of other kernel memory that happens
to follow it...causing, ahem, undesired behavior.
1996-04-11 06:51:53 +00:00
Marc G. Fournier f81673587e fixed bug PR#bin/722 (1.9.9e confirms accuracy of fix) 1996-04-11 06:45:15 +00:00
Nate Williams c29a4d4f05 hp300 -> i386 1996-04-10 05:27:11 +00:00
Marc G. Fournier 889db30f68 Merged changes from -current 1996-04-09 21:23:11 +00:00
David Greenman 972c3fb099 From main branch: updates to my copyright. 1996-04-08 01:32:00 +00:00
David Greenman 82f26cf52a From current: updates to my copyright. 1996-04-08 01:28:10 +00:00
Nate Williams a7597ca26d Bring in changes from the HEAD.
- Changed #includes of <i386/include/foo.h> to #includes of <machine/foo.h>.
- pccard.c:
        #include <i386/include/clock.h> to get sysbeep() prototype
- pcic.c:
        add appropriate #ifdef around a prototype to quiet GCC because
        fn decl. is also #ifdef'd.
1996-04-07 18:13:21 +00:00
David Greenman 6178932cb0 Brought in fix from rev 1.24: Fix panic via splnet protection for interface
address changes.
1996-04-07 07:02:05 +00:00
Joerg Wunsch 6f6ec01338 Merge from HEAD: fix a typo. 1996-04-07 01:19:01 +00:00
Joerg Wunsch 742ade1078 Merge from HEAD: add rplay. 1996-04-07 01:17:26 +00:00
Mark Murray c5fad916cd Merge path corrections from HEAD. 1996-04-06 16:35:17 +00:00
Joerg Wunsch e677c0ac5b Merge from HEAD:
Don't immediately give up if a single read() or write() wasn't
sufficient to transfer all the data from stdin, or to stdout.  Working
on pipes causes further fragmentation.
1996-04-06 11:01:48 +00:00
Joerg Wunsch 02653efcc4 Merge all the changes to this man page from HEAD. 1996-04-06 09:56:25 +00:00
Joerg Wunsch f1d02b48c5 Merge from HEAD: Xref clocks(7). 1996-04-05 09:01:57 +00:00
Joerg Wunsch f8ea6612e7 Merge from HEAD: add clocks(7). 1996-04-05 09:00:29 +00:00
Rich Murphey 59079338c0 add Nakamichi MBR-7 CD changer to knowndevs.
Each platter is on a separate LUN, all sharing one scsi ID.
Reviewed by:	davidg, julian
Submitted by:	rich
Obtained from:  rich
1996-04-04 22:43:59 +00:00
Joerg Wunsch 05f66e3896 Merge from HEAD: mention amd. 1996-04-04 17:30:31 +00:00
Gary Palmer 22228e8b42 Import change from rev. 1.12: change what could be an error to be more
obviously a warning.
1996-04-03 23:39:26 +00:00
Poul-Henning Kamp 33b6b9adb1 Pickup CWARNFLAGS from /etc/make.conf 1996-04-03 12:10:28 +00:00
Poul-Henning Kamp 947be77799 Typo. sorry. 1996-04-03 05:51:55 +00:00
Peter Wemm 777b7ea81a Re-remove these undead files. These were supposed to go with the sendmail
update, but for some reason they got missed and are still around.
1996-04-03 03:22:36 +00:00
Peter Wemm 5013526046 Add the "8" flag to the smtp and esmtp mailers. This makes sendmail-8.7.5
behave like the older 8.6.12 that was in the tree when talking to
an older sendmail that does not speak esmtp or advertise the 8bitmime
capability.
1996-04-03 02:58:48 +00:00
Garrett Wollman 55aa3fde74 Change from main branch: spell Bogota correctly. 1996-04-02 16:23:32 +00:00
Poul-Henning Kamp 8f0b05c51d Align help text.
Add gateway command
1996-04-02 15:19:20 +00:00
Poul-Henning Kamp 8ad11607c3 Fix to ldconfig to handle shlibs with . in their actual names.
Taken from -current.
1996-04-02 13:10:30 +00:00
Poul-Henning Kamp 710fd6c9c9 Fix two cases where ia->ia_ifp could be NULL 1996-04-02 12:27:22 +00:00
Poul-Henning Kamp 09ee2f6cc5 A couple of bug-fixes.
Reviewed by:	phk
Submitted by:	"Frank ten Wolde" <[email protected]>
1996-04-02 11:43:53 +00:00
Joerg Wunsch ab4680874f Merge from HEAD:
Copy the file /etc/localtime, unless it's already a symnlink.
1996-04-01 08:22:22 +00:00
Justin T. Gibbs efeda8dfa0 Merge with HEAD.
Add SLISTs and STAILQs.
1996-04-01 00:27:36 +00:00
Justin T. Gibbs 9e2be01a3f Merge with HEAD.
Purge the SCSI system from its internal types int32, int16, int8, u_int32,
u_int16, u_int8.  Add support for the XS_SELTIMEOUT error code.
1996-04-01 00:26:17 +00:00
Justin T. Gibbs e5e4722527 Merge with HEAD.
Purge the SCSI system from its internal types int32, int16, int8, u_int32,
u_int16, u_int8.

aic7870.c
    Remove "scb walking" code.  Its replaced by the dynamic SCB discovery
    code in aic7xxx.c.  Fix setup of SCSICONF.

bt9xx.c
    spaces -> tabs

ncr.c
    Use XS_SELTIMEOUT error code for selection timeouts.
1996-04-01 00:25:28 +00:00
Justin T. Gibbs 9175817626 Merge with HEAD.
Purge the SCSI system from its internal types int32, int16, int8, u_int32,
u_int16, u_int8.

aic7xxx.c aic7xxx.h
    Change method for dealing with parity errors.  Support the aic7850.
    Fix the timeout code.  Remove bogus declaration of RESTART_SEQUENCER
    and UPDATE_SEQUENCER from aic7xxx.h.  Dynamically determine the number
    of SCBs.  This driver is identical to the one in -current except I've
    left parity error handling disabled until it is verified in -current.

bt.c
    Use varargs/stdarg in bt_cmd.  Use the XS_SELTIMEOUT error code for
    selection timeouts.
1996-04-01 00:23:17 +00:00
Justin T. Gibbs dfdefff7a8 Merge with HEAD.
Purge the SCSI system from its internal types int32, int16, int8, u_int32,
u_int16, u_int8.

aha1542.c
    Use stdarg/varargs in aha_cmd.  Use the XS_SELTIMEOUT error code for
    selection timeouts.  Staticize.

bt5xx-455.c
    Overide the unit number passed in in our isa_device structure with the
    current unit in bt_unit.  This kludge makes the unit numbers sane when
    there are PCI/EISA/ISA probes going on.

isa.c
    Regester the ISA bus as "ISA bus" instead of "ISA or EISA bus".

if_ep.c
    Many bug fixes from -current.  Split out the eisa probe into an
    eisaconf probe so it doesn't conflict with the aic7xxx driver.
1996-04-01 00:19:44 +00:00
Justin T. Gibbs 8fac4e2a11 Merge with HEAD.
Bring all changes to the eisaconf code from -current back to -stable.

aha1742.c
    Don't pass unit numbers around.  Use softcs instead.

3c5x9.c
    Eisaconf probe for the 3c579 and 3c509(in eisa configuration mode).
1996-04-01 00:14:16 +00:00
Justin T. Gibbs ac83763b6a Merge with HEAD. Create a true eisaconf probe for the ep driver
(prevents a conflict with the aic7xxx driver) which can be found
in i386/eisa/3c5x9.c
1996-04-01 00:12:07 +00:00
Justin T. Gibbs 0d20cbe8b0 Merge with HEAD. Fix comments, change handling of parity errors, and support
the aic7850.
1996-04-01 00:11:16 +00:00
Justin T. Gibbs a053b8f9ff Merge with HEAD. Add SLIST and STAILQ. 1996-04-01 00:10:21 +00:00
Justin T. Gibbs b6834b1b11 Merge with HEAD. Deal with new eisaconf data structures for I/O and memory
addresses.
1996-04-01 00:09:48 +00:00
Joerg Wunsch d332dc97d7 Merge from HEAD:
Make the `uk' device useable again.
1996-03-31 18:10:26 +00:00
Joerg Wunsch afb1529a4c Merge from HEAD:
Fetch dummy READY CHANGED condition interrupt stati.

Submitted by:	bde
1996-03-31 18:09:00 +00:00
Joerg Wunsch 9bac00f680 Merge from HEAD:
Fix a bogus message:
ed0: Invalid irq configuration (2) must be 2-5 for 3c503
                                ^          ^
1996-03-31 15:55:01 +00:00
Joerg Wunsch 5f3986bd29 Merge from HEAD:
Another round of fixes:

. Replace my NIH-suffering code to detect the number of lines on
  the terminal by the curses variable LINES.

. Fix the selection code for countries with more than one screenful
  of locations.  The very few people living in America/US/Pacific
  now won't be charged for Indiana any longer... :)

. Removed the gross code that copied over the timezone file to
  /etc/localtime, and create a symlink now instead.

I've also added tzsetup.8 while i was at it.
1996-03-31 09:59:43 +00:00
David Greenman 33c36ac217 Brought in change from rev 1.32:
Change v_usecount & v_writecount from a short to an int. As shorts they
can and will overflow on large machines - especially on machines with
filesystems with lots of files (like netnews servers), and the result
is a "free vnode isn't" panic or worse.
This fixes one of the causes of these panics that I've been experiancing on
wcarchive.
1996-03-29 06:41:19 +00:00
David Greenman e2a11da437 Revert to previous calculation of vm_object_cache_max: it simply works
better in most real-world cases. This comes after extensive analysis of
file caching behavior on wcarchive...
1996-03-29 06:30:18 +00:00
David Greenman ab3784b2b2 Fix declarations for nfs_sillyrename and nfs_lookitup. 1996-03-29 06:04:46 +00:00
Joerg Wunsch 5673341b32 Add bootparams.5.
Obtained from: NetBSD
1996-03-28 20:57:49 +00:00
Torsten Blum 1a6675a6d4 The etc.i386/fstab.* files have been nuked from -stable too, so don't try
to install them

Obtained from: -current
1996-03-27 22:42:05 +00:00
Poul-Henning Kamp 0daa877b30 Check the validity of ia->ia_ifp before dereferencing it. 1996-03-25 17:42:41 +00:00
Peter Wemm 60bf70a735 install freebsd.cf as sendmail.cf, not the freefall.cf file from sendmail.
freebsd.mc/cf is a generic configuration, while freefall.mc/cf is the
industrial-strength configuration that we actually use on freefall.

The freebsd mailing list mail-relays may find freefall.mc template a much
better starting point.
1996-03-25 07:32:05 +00:00
Peter Wemm 527339cc21 Use the libutil setproctitle(), and add a tiny bit of lint to to give a hint
about how to compile this sendmail on older releases. (see Makefile)
1996-03-25 07:23:13 +00:00
Peter Wemm 71e8712890 Update sendmail to -current version (8.7.5) to fix various known security
holes and a lot of bugs.

8.7.* has pretty much finished development, 8.8 is in alpha testing.

A seperate commit will follow to do a couple of 2.1.x specific things and
to turn off the infamous 8bitmime->quoted-printable conversion when talking
to older sendmails.

OK'ed by: davidg

(Note: a lot of tags were added behind the scenes for the new files)
1996-03-25 06:54:33 +00:00
Joerg Wunsch e783ed7fdd Rename private' into private_data' for libdisk data elements. 1996-03-24 19:05:46 +00:00
Joerg Wunsch f3297de099 Bring in from HEAD: make libdisk C++ aware. 1996-03-24 19:04:51 +00:00
Joerg Wunsch aae40a3d45 Merge all the fixes from HEAD. 1996-03-22 22:24:16 +00:00
Nate Williams 147205e2f4 Removed some completed tasks, plus add my name to the laptop taskes. 1996-03-22 21:27:44 +00:00
Stefan Eßer aba844261d Disable handshake timeout mechanism, which seems to have caused more
trouble than it solves ...
1996-03-22 20:22:15 +00:00
Nate Williams 3e150748a4 Bring in from the HEAD
revision 1.14
date: 1996/03/18 15:15:42;  author: jkh;  state: Exp;  lines: +1 -2
Fix bogus MLINKS line.
1996-03-22 20:02:41 +00:00
Nate Williams 0f8e618ca0 Removed unused files.
Obtained from: -current
1996-03-22 17:29:58 +00:00
Nate Williams bc5ab83e95 Bring in changes from the HEAD.
Bloat the -stable etc tree with unused PC-CARD support hooks to make
testing go easier.  This code won't do anything in -stable, but it
minimizes the # of patches the testers will have to make to their
systems.
1996-03-22 17:26:48 +00:00
Nate Williams 5e0ce1662b Open up /dev/apm instead of /dev/apm0 (which is no longer used). 1996-03-21 20:54:32 +00:00
Poul-Henning Kamp 8dddf92404 Remove KADB, we havn't had it ever I think.
Add support for NFS_SERVER and NFS_CLIENT options.
1996-03-21 20:30:15 +00:00
Poul-Henning Kamp e6bf4af0d4 Changes to split out NFS_SERVER and NFS_CLIENT, first bit. 1996-03-21 20:25:56 +00:00
Nate Williams 9338a1d5fa Bring in changes from the HEAD.
- Updated PC-CARD support from the BSD Nomads.

(I forgot to do this a long time ago)
1996-03-21 20:19:18 +00:00
Nate Williams ee61439e6e Bring in changes from the HEAD.
- Fixed apm device name
- Bring in PC-CARD device support
1996-03-21 19:52:18 +00:00
Joerg Wunsch e5adfa8d01 Fix from HEAD:
Cast char's to (u_char) before passing them to isctype() functions.
1996-03-19 21:22:10 +00:00
Nate Williams 0eaf38064e Bring in changes from the HEAD.
- Always enable interrupts before calling the APM idle/busy routines.
1996-03-19 17:06:22 +00:00
Nate Williams ab5bd2dbcf Bring in changes from the HEAD.
- Fix the APM 'idle/busy' functions.
- Call apm_int() instead of doing direct assembly calls.
- Added kernel compile time failure if more than one APM device is configured.
- Always enable interrupts before calling the APM idle/busy routines.
- Minor bugfixes from the recent PC-CARD release.
1996-03-19 17:05:51 +00:00
Garrett Wollman b664ae1640 Copy Portugal change over to -stable. 1996-03-19 16:35:06 +00:00
Bruce Evans 3df7a83b1c alarm -> ualarm (same as in HEAD). 1996-03-19 14:06:55 +00:00
Nate Williams db7e641fba "options APM" is no lnoger necessary for APM support. 1996-03-19 04:20:45 +00:00
Joerg Wunsch 68c5b58067 Bring in the fix from rev 1.4 of copyin.c (fix for infinite loop,
and for sparsely stored links).
1996-03-18 23:10:16 +00:00
Nate Williams fa41d9f3d8 Bring in changes from the HEAD.
- DEVCONF support
- Removed multiple device support
- Cleanup
1996-03-18 22:49:58 +00:00
cvs2svn 8759b73be4 This commit was manufactured by cvs2svn to create branch 'RELENG_2_1_0'. 1996-03-18 21:42:32 +00:00
Nate Williams 68dd1de4ec Bring in relevant staticizing and cleanups from -current. 1996-03-18 21:24:32 +00:00
Joerg Wunsch 97fff7126e Add libdisk. 1996-03-18 18:59:08 +00:00
David Greenman 3260dd9eb3 Brought in fix from rev 1.15: fix coredump with passive and !logged in. 1996-03-18 11:10:16 +00:00
Joerg Wunsch d1a5153100 Bring over rev 1.13 from HEAD. 1996-03-17 23:25:31 +00:00
Joerg Wunsch 451aefc410 libdisk is now standard. 1996-03-17 23:17:19 +00:00
Poul-Henning Kamp b8a69800bd Always dsgone slices when we leave. 1996-03-17 20:33:50 +00:00
Peter Wemm e48769d944 Add NOPIC=yes, as per HEAD to avoid any chance of version mismatches
and the dire consequences.
1996-03-17 19:04:07 +00:00
Joerg Wunsch 41f127481f Merge man page changes from HEAD. 1996-03-17 09:51:18 +00:00
Joerg Wunsch dab936defb Merge in the fix from rev. 1.6:
Move the YP initialization earlier, so it's done before the evaluation
of -p/-s/-a related cruft.

Closes PR # misc/933 "chpass -s <shell>" does not work
1996-03-17 09:03:17 +00:00
Joerg Wunsch c0d19c3fc5 Merge from HEAD (fix of sign-extension bugs). 1996-03-17 09:01:44 +00:00
Mark Murray 50268f6c5d Merge with HEAD 1996-03-16 13:50:14 +00:00
Peter Wemm e35a8d4c12 Correct spelling of [email protected]'s email address 1996-03-15 07:52:28 +00:00
Bill Fenner c3426e7852 Bring in revision 1.30 from HEAD: copy IP header when queueing packet
so that it doesn't get stepped on, and clean up uninitialized pointer usage.
1996-03-14 17:13:50 +00:00
Paul Traina e42005ec2b Bring in fix for kern/1058 from head (along with LBL setsockopt operation) 1996-03-13 08:13:17 +00:00
Nate Williams 4277b40138 Add the '-s' flag to apm which returns the status of the APM support
(enable/disabled) now that the APM_GETINFO ioctl returns the necessary
information.  Also, print out the status along with the other
information as the default behavior.
1996-03-13 00:48:06 +00:00
Nate Williams 42c3976a26 Return the status of the APM support (enabled/disabled) with the
APM_GETINFO ioctl.
1996-03-13 00:42:56 +00:00
Nate Williams e693e9d5d3 Removed last bit of remaining APM_SLOWSTART code. 1996-03-12 21:53:57 +00:00
Nate Williams b1f160949b Bring in changes from the HEAD - Fixeup typos in comments. 1996-03-12 21:28:18 +00:00
Nate Williams dab9d1a479 Whoops, forgot to include 'apm.h' to pickup definition of NAPM. 1996-03-12 16:39:15 +00:00
Poul-Henning Kamp ccc54c07d2 Move "dialer" to gid==68. 1996-03-12 15:18:51 +00:00
Poul-Henning Kamp 4a91b20265 Move user & group "xten" from [ug]id == 100 to 67.
This is less likely to collide with site policies.
1996-03-12 15:17:29 +00:00
Poul-Henning Kamp dfe8fbad35 Remove ingress user and group. 1996-03-12 15:09:39 +00:00
Poul-Henning Kamp 713caf5e4e Treat all kinds of EOF as HUP.
Allow "anonymous" CHAP.
Log user, peer, auth-proto and time on exit.
1996-03-12 13:43:10 +00:00
Poul-Henning Kamp bc964384be A fix for malloc-abuse pulled from -current. 1996-03-12 13:14:09 +00:00
Nate Williams 4fa9f244f1 Always initialize master_softc. This avoids panics in the idle loop due
to unitialized data if the APM support is compiled in and the probe
fails.
1996-03-12 06:09:34 +00:00
Nate Williams b9e04c7ab1 Bring in changes from the HEAD. 1996-03-12 05:54:30 +00:00
Nate Williams c27b34a150 Removed undocumented and unused APM_SLOWSTART code. 1996-03-12 05:49:56 +00:00
Nate Williams 6876a5d303 Fix 'stutter' in manpage.
The man page for date(1) talks about "a a" maximum, not just
    "a" maximum.

Submitted by:   Simon Burge <[email protected]> via NetBSD GNATS
1996-03-12 05:32:12 +00:00
Nate Williams f2dc01af18 Do a APM BIOS dis-connect before attempting to do a 32-bit connection
just in case a connection already existed.

Also, a minor optimization in the code which determins if a APM BIOS exists.

Reviewed by:	phk

This is based on the APM-0.5 patch for Linux, but written entirely by me.
1996-03-11 21:55:18 +00:00
Nate Williams f708de2952 Removed conditionals on BDE_DEBUGGER around the loading for the IDT
since it's necessary for interrupt processing to be enabled.  Modify
comment to reflect this condition.

Submitted by:	bde
1996-03-11 21:42:52 +00:00
Stefan Eßer 55eea8e118 Apply diff from 1.65 to 1.66 from -current:
Negotiate WIDE first, then SYNC.
1996-03-11 19:59:46 +00:00
Joerg Wunsch 8c0e41ba61 Update from HEAD (err-->errx) 1996-03-11 11:04:23 +00:00
Nate Williams 4ca1e2ae08 Bring in most of Bruce's prot_to_real() changes into the APM BIOS
startup code.

Reviewed by:	bde
1996-03-11 06:45:43 +00:00
Nate Williams 74aecea13c Removed unused MACH_KERNEL code. 1996-03-11 06:39:52 +00:00
Bruce Evans 461f63736d Brought in fixes for restoring segment registers in prot_to_real()
from asm.S (rev 1.7) and table.c (rev 1.9).
1996-03-10 00:50:18 +00:00
Rodney W. Grimes febdd57e3b Bring in revision 1.21, timeout fix.
Reviewed by:	ache, [email protected] (Peter da Silva)
1996-03-09 19:03:37 +00:00
Poul-Henning Kamp 7f31ee452a phkmalloc strikes again.
Found by:	asami
1996-03-07 09:01:07 +00:00
Bruce Evans 72f64e5855 Brought in fix from rev 1.57: don't forget the (1 << intr) bit.
Submitted by:	gibbs
1996-03-06 23:20:42 +00:00
Rodney W. Grimes 1c6ef639b8 Fix the botched addition of the lpd knob, it was stuck in the middle
of the nfs_client knob.  Put it in the same place that -current has it.
1996-03-06 08:54:01 +00:00
Poul-Henning Kamp f5458faca1 Man page on Laplink TCP/IP.
Reviewed by:	phk
Submitted by:	[email protected]
1996-03-05 16:53:23 +00:00
Nate Williams bf672a0e91 Removed MACH_KERNEL ifdef's to bring the code closer in-line with
-current.  DEVFS and static changes have not yet been brought in.
1996-03-05 05:50:51 +00:00
Nate Williams 071112cdc7 Bring in changes from -current.
revision 1.4
date: 1996/01/30 22:53:13;  author: mpp;  state: Exp;  lines: +2 -2
Fix a bunch of spelling errors in the comment fields of
a bunch of system include files.
1996-03-05 04:53:49 +00:00
Peter Wemm bfeb800d4b Whack a #ifdef DEBUG around the printf about syslog being replaced by
a sigreturn,  There's up to 20 of these per second, and syslogd is
fsync()'ing the /var/log/messages file.. :-(

This is "expected behavior" for the level of code in -stable.
1996-03-04 19:48:38 +00:00
Peter Wemm 5844cf44f9 Make time(0) work.. Netscape's scroll bars dont work without it. 1996-03-04 19:46:16 +00:00
Poul-Henning Kamp fccfc0d56b Validate length before we trust it.
Submitted by:	[email protected]
1996-03-04 16:03:15 +00:00
David Greenman 622c62d193 Brought in fix from rev 1.18: Fix for u_map allocation failure panic. 1996-03-04 12:47:06 +00:00
David Greenman 7e2fc20e13 Brought in Path MTU Discovery implementation from main branch. This has
been running on wcarchive now for several weeks and makes a substantial
improvement in TCP performance.
1996-03-04 04:56:27 +00:00
Mark Murray 49866c35eb Bring the COAST/MIT random number fixes in. 1996-03-03 11:39:41 +00:00
Garrett Wollman 0ad8abc451 Bring new timezone files onto vendor branch. Kill Presidential Election
Time and solar goop.  (backward was not pulled over since it's not used
by default.)
1996-03-02 21:52:50 +00:00
Poul-Henning Kamp 00e8910460 Use libmd.
Add support for negotiating (more like "informing peer") about DNS.
Pull in a lot of cosmetic changes from -current to narrow the gap.
1996-03-01 19:35:00 +00:00
Jordan K. Hubbard 06c368b9be Merge from HEAD. 1996-03-01 18:28:57 +00:00
Nate Williams d6cfa55dce Fix for 3C589C model. This patch allows people with the new models to work and
doesn't break support for the older models (tested with my 3C589B).

Reviewed by:	Joshua Gahm <[email protected]>
Submitted by:	[email protected] (HOSOKAWA Tatsumi)
1996-02-28 16:22:43 +00:00
Peter Wemm 0b6890b5b3 Fix bootstrapping problem I introduced with stuff using install -C,
build/install xinstall before doing a 'beforeinstall' in includes.

allow "make -DNOCLEAN" to avoid the clean/cleandir/cleandist altogether

"tools" -> "build-tools" label to avoid the risk of "make tools" actually
seeing a stray "tools" directory when working with both -current and -stable

Obtained from: -current
1996-02-27 20:51:58 +00:00
Gary Palmer 911acace6f Add a missing space to a panic message:
panic: ahcintr: AWAITING_MSG for an SCB thatdoes not have a waiting message.
                                           ^^
1996-02-27 03:04:22 +00:00
Poul-Henning Kamp ee9219e78c Update to lates reality. 1996-02-26 15:27:00 +00:00
Poul-Henning Kamp ad9ff076ab Update ipfw code to same level as -current. 1996-02-26 15:23:39 +00:00
Poul-Henning Kamp 4fdaf3d047 Make getsockopt handle a link of mbufs, rather than just one. 1996-02-26 14:01:20 +00:00
Bruce Evans 046ed9b3c0 Don't trash %ebp.
Obtained from: NetBSD
1996-02-25 20:34:46 +00:00
Paul Traina 8c37640079 back out size==0 -> initialize change 1996-02-25 18:58:13 +00:00
Poul-Henning Kamp 4c20fd2619 Disable ipfw until I can test the new code on -stable. 1996-02-25 08:03:19 +00:00
Peter Wemm d2e32a284d Add libmp/libgmp to Makefile SUBDIR, after having tagged them into 2.1
from -current.  The ssh port is expecting these to be present.
1996-02-23 21:48:31 +00:00
Peter Wemm 9f2b801eaf Bring some of the updates to the si driver on -current onto -stable.
This is a selection of deltas from 1.10 through 1.16.  The rest are
mainly specific to 2.2-current.
1996-02-23 21:00:55 +00:00
Poul-Henning Kamp 5f3ba77460 Overloooked this one. 1996-02-23 20:10:52 +00:00
Paul Traina cac832a7d0 Bring in router discovery 1996-02-23 18:06:56 +00:00
Paul Traina d1c886c942 remove unneeded file 1996-02-23 18:05:21 +00:00
Paul Traina e2762d6b0c Bring in router discovery from -current 1996-02-23 18:04:35 +00:00
Paul Traina f683da8346 If a .db file is 0 length, initialize it properly as if it didn't exist.
Reviewed by:	wollman
1996-02-23 17:58:34 +00:00
Poul-Henning Kamp 6ddbd89391 Fix a one-line "Oops". 1996-02-23 15:49:06 +00:00
Poul-Henning Kamp a0601d56d8 Make ipfw handle the new kernel stuff. Put notice in man-page that it
doesn't match reality right now.
1996-02-23 15:28:39 +00:00
Poul-Henning Kamp 0440c9042c Big sweep over the IPFIREWALL and IPACCT code.
Close the ip-fragment hole.
Waste less memory.
Rewrite to contemporary more readable style.
Kill separate IPACCT facility, use "accept" rules in IPFIREWALL.
Filter incoming >and< outgoing packets.
Replace "policy" by sticky "deny all" rule.
Rules have numbers used for ordering and deletion.
Remove "rerorder" code entirely.
Count packet & bytecount matches for rules.
1996-02-23 15:26:13 +00:00
Peter Wemm 4c61726fea If the process has successfully done a setuid, rip away read/write to
the "ctl" file, otherwise it can be "attached" by the user while it has
priviliged information in core.  This is a small part of the fixes
in -current.
1996-02-23 15:12:02 +00:00
Peter Wemm 5dc837617d Add usr.sbin/quot to Makefile, which was brought in from -current 1996-02-23 14:59:32 +00:00
Peter Wemm a7ec89abd9 Add sbin/fsdb to Makefile, which was bought in from -current 1996-02-23 14:57:11 +00:00
Peter Wemm 496d2d7711 Bring across cvs from -current (which is at about version 1.6.3).
This has remote repository access via "rsh".
(eg: $CVSROOT = freefall.freebsd.org:/home/ncvs)

This is not quite the latest version, but it's a "known quantity".

There were a few covert tagging operations done as well to bring some
new files onto the -stable branch, these do not show here.
1996-02-23 12:18:52 +00:00
Peter Wemm 5e2044dcbe Bring rcs-5.7 from -current, since probably the most common use
of rcs on FreeBSD systems is to read the RCS/CVS repository, which is
maintained by rcs-5.7.  Also, later versions of CVS get advantages
from it.
1996-02-23 09:32:22 +00:00
Paul Traina 2667b626f8 Add in support for ICMP router advertisements 1996-02-23 01:36:18 +00:00
Peter Wemm 90dcf1f68d Update the diff tools to diffutils-2.7 as in -current. This is more
compatable with the more recent cvs releases with remote access.
1996-02-22 21:52:49 +00:00
Peter Wemm 5382a48184 Make nfsd use setproctitle from libutil now, because the original version
in it did not mix well with the BSD/OS support changes to libkvm.
1996-02-22 20:34:10 +00:00
Peter Wemm dfbd3bbe54 Add beforeinstall in libutil to the "includes" target, from -current 1996-02-22 20:31:49 +00:00
Peter Wemm 9baeaf22aa Bring ps -U username from -current. 1996-02-22 19:51:40 +00:00
Peter Wemm b3240ebab9 Bring the wollman/bde enhancements from -current. Namely the -C and -p
flags.  This is so that all the "cmp -s foo /usr/xyz/foo || install -c .."
gunk doesn't need to be re-added to a couple of things heading this way
from -current.
1996-02-22 19:43:36 +00:00
Peter Wemm 5ec0c12134 Add setproctitle to makefile (which was manually tagged onto the branch)
Bump shared lib version to libutil.so.2.1, as per -current
1996-02-22 19:36:20 +00:00
Peter Wemm 31cdc03245 Teach libkvm about the new layout of the user stack top caused by BSD/OS 2.x
executable support.  Also, the different contents of "struct ps_strings".
1996-02-22 19:25:43 +00:00
Peter Wemm 059f274907 Fill in the eproc's e_login field before it's passed out to the user via
sysctl.  This makes 'ps -ax -O login' work.
1996-02-22 19:22:30 +00:00
Peter Wemm b5e47c10aa Bring my BSD/OS 2.x executable support from -current over..
Note that the user-mode parts of this will follow shortly.
1996-02-22 19:20:48 +00:00
David Greenman 1f993b918b Retrofitted changes to add NO_SWAPPING option from -current (actually, it's
the other way around - the changes in -current were based on these).
The NO_SWAPPING option disables U-area paging (struct user & kernel stack)
and can help improve performance in some special circumstances where a
system has plenty of main memory and also has a lot of processes that are
often in short waits (< 1 minute) but wake up frequently. Such is the
case on a busy FTP archive like wcarchive. This option does not affect
generic VM system paging.
1996-02-22 11:10:09 +00:00
Nate Williams 4d1df654da Updated the PC-CARD support files to -current status.
Note, this stuff is completely disabled in /sys/i386/conf.c, so this
commit is made to make it easier to integrate the Nomad's PC-PCARD code.
1996-02-21 20:24:27 +00:00
Bill Fenner 95147e546f Make "can't allocate llinfo" error more useful. 1996-02-20 17:55:04 +00:00
Jordan K. Hubbard 5f7872dfbb Merge in broken `test -h' functionality from -current. This also
accounts for the weird behavioral differences that Satoshi and I saw
when testing out the new link testing changes to bsd.port.mk - he was
running -current and I -stable.
1996-02-20 09:48:53 +00:00
Justin T. Gibbs 7376c6dbfb Bring in changes from rev 1.7 - Return immediately from our interrupt handler
if there is no work to do.  Allows for shared interrupts.

Submitted by:	[email protected]
1996-02-18 07:49:25 +00:00
Justin T. Gibbs 82dad92749 Bring in changes from rev 1.7 - Add PCI ID for older Buslogic 946 cards.
Submitted by:	[email protected]
1996-02-18 07:48:38 +00:00
David Greenman 2facedcfc9 Brought in most of rev 1.8 (minus sysctl hook): fix for bad performance
for certain sized writes to a TCP socket.
1996-02-16 19:04:52 +00:00
Justin T. Gibbs 932411b898 Merge with HEAD. Allow I/O ports above the standard ISA ports so
PCI probes succeed.

Reviewed by:	Richard J Kuhns <[email protected]>
1996-02-16 17:56:22 +00:00
Justin T. Gibbs adf178c0cd Merge with HEAD. Properly scan for the I/O port in the PCI map registers.
Reviewed by:	Richard J Kuhns <[email protected]>
1996-02-16 17:55:55 +00:00
Jordan K. Hubbard cb3aa50926 Merge from HEAD. I've been testing this under -stable, actually. 1996-02-16 11:23:31 +00:00
Poul-Henning Kamp b9d29a1d36 Fix the bpf stuff I broke. Sorry. 1996-02-15 10:57:26 +00:00
Poul-Henning Kamp a8db986a29 Document that reordering of rules in no longer the rule. 1996-02-13 15:22:05 +00:00
Poul-Henning Kamp a304b29bdb Fix & Update printing of CPU features. 1996-02-13 10:33:12 +00:00
Mike Pritchard a4099e4a42 Brought in changes from main branch: added .Fx macro. 1996-02-12 19:33:23 +00:00
Justin T. Gibbs a55bac977b Correct PCI ID for the Buslogic 946. 1996-02-12 17:03:27 +00:00
Poul-Henning Kamp 9cf11e38b1 Make this compile again. Sorry. 1996-02-12 16:20:53 +00:00
Poul-Henning Kamp a3d9df55da Remove the stuff for auto cdevsw registration. Hopefully this compiles now. 1996-02-12 14:40:10 +00:00
Poul-Henning Kamp 1db463ae20 Add Crynwr mode to lpt.c. 1996-02-12 14:37:24 +00:00
Poul-Henning Kamp bf1848eb6a Release-note material:
The ipfw code will no longer sort the rules as default.
This means that access-lists may take a different meaning now.
>>> Please review your access lists <<<
1996-02-12 14:34:19 +00:00
Jordan K. Hubbard e99acd7ec9 Sync with HEAD 1996-02-11 09:05:56 +00:00
Jordan K. Hubbard 88a83c5400 Disable use of setproctitle() in 2.1 until it arrives.
Thanks to Rod Grimes for helping me get my cvs mess straightened out!
1996-02-11 07:17:00 +00:00
cvs2svn 5dc5f556f5 This commit was manufactured by cvs2svn to create branch 'RELENG_2_1_0'. 1996-02-11 00:16:21 +00:00
Jordan K. Hubbard e19063fc8d Merge from HEAD 1996-02-08 11:56:19 +00:00
Paul Traina e19d5bdf54 Fix kern/627 in stable too - panic on open if syscons disabled 1996-02-08 06:32:45 +00:00
Peter Wemm 7d35de9b8e Mark Murray's "Trivial" change to support mixed MD5 and DES passwords.
If the salt starts with $1$, preserve it rather than overwriting it.
This allows a dual-personality crypt to sense which algorithm to use.

Some other cosmetic nits from HEAD too (null terminate a salt string in
#ifdef'ed out code).
1996-02-07 15:10:16 +00:00
Peter Wemm a26361f8a1 Add Mark Murray's md5 recognition ($1$) into the libdescrypt library.
This is a "trivial" change - if it is presented with a "$1$ salt (which
is illegal for the DES crypt), it switches to the md5 routine instead.
If it never sees a MD5 string, it behaves exactly as before.

This will be a lifesaver for people who install from cdrom, add users or
set passwords, then go and select the "secure" dist from the ftp server
and would have locked themselves out of their machine.

Some -Wall cleanups came along with it.
1996-02-07 15:01:46 +00:00
Jordan K. Hubbard 2c99009787 Add sup to Makefile now that I've tagged it into -stable 1996-02-06 23:30:58 +00:00
Bill Fenner d13807e7c8 Bring in ARP patch from rev 1.23. 1996-02-06 18:11:56 +00:00
Doug Rabson 300c1ef4f8 Brought in changes from main branch: Compile time warnings, various stability
fixes
1996-02-05 17:03:26 +00:00
David Greenman 630150f702 Brought in changes from revs 1.31 and 1.35: bugfix for T/TCP and window
scaling plus sync with cosmetic changes.
1996-02-04 12:46:20 +00:00
David Greenman 30a7cd5252 Brought in fix from rev 1.28: back out of rev 1.27 fix. 1996-02-02 18:31:59 +00:00
Mike Pritchard f185378bc1 Bring in changes from HEAD: mdoc macro package updated:
Added/updated some standards for the .St macro.
Updated the .Os macro to stop reporting "BSD Experimental", and
taught it about FreeBSD and our various versions.
1996-02-01 18:22:56 +00:00
Bill Fenner 955b1875aa Bring in changes from HEAD; install correct netmasks. 1996-02-01 17:45:43 +00:00
Joerg Wunsch 225c8750d5 Pull from HEAD:
. No need to leave out the Makefiles when installing the examples.
. Let find(1) do all the dirty work, instead of grepping.
1996-01-31 22:17:34 +00:00
Mike Pritchard f51bf8703c Bring in some of the spelling fixes from the main branch. 1996-01-31 14:32:32 +00:00
Mike Pritchard 5fad3c49d3 Bring in spelling fixes. 1996-01-31 13:55:15 +00:00
Mike Pritchard 0ae7e5c514 Bring in spelling fixes. 1996-01-31 13:42:47 +00:00
David Greenman 3c2c718001 Brought in change from rev 1.60: "out of space" -> "out of swap space" 1996-01-31 13:15:21 +00:00
David Greenman 631688cac6 Brought in sigexit()/killproc() bugfix, associated improvement to their
output, and new killproc usage from main branch.
1996-01-31 13:12:39 +00:00
David Greenman 2318b8dd04 Brought in change from rev 1.22: better message when mb_map is filled. 1996-01-31 12:06:48 +00:00
David Greenman 1ab09b46f5 Brought in changes from rev 1.5: Nov 8, 1995 version from the InterNIC. 1996-01-31 11:26:18 +00:00
David Greenman 84d501b6a9 Brought in 'fix' from rev 1.18: be sure not to send data and/or FIN in SYN
segments if not doing T/TCP.
1996-01-31 11:09:44 +00:00
David Greenman 9e5479e60f Brought in T/TCP fixes from main branch: retransmitted SYN segments could
have different CC options.
1996-01-31 11:02:05 +00:00
Nate Williams 2c778829f0 ctm(5) has been written, so remove comment about it not existing. :) 1996-01-31 02:01:56 +00:00
David Greenman 8cbdb9f935 Brought in change from rev 1.21: fix for aliases & all-ones netmasks. 1996-01-30 21:41:34 +00:00
Mike Pritchard b87f91f13d Bring in another batch of spelling fixes from the main branch. 1996-01-30 18:16:52 +00:00
Mike Pritchard e824e3a0f2 Bring in changes from HEAD:
Fix even more spelling errors in various man pages.
1996-01-30 16:47:06 +00:00
Mike Pritchard fdd7805ad4 Bring in changes from HEAD:
Fix a bunch of spelling errors in a bunch of man pages.
1996-01-30 14:03:50 +00:00
David Greenman a1f403f522 Brought in fix from rev 1.27 of swtch.s: properly adjust the saved stack
pointer to pop the return address.
1996-01-30 12:56:30 +00:00
David Greenman 35b06fb39e Retrofitted fix from rev 1.22: fix panic due to a computational overflow
with large sparse files.
1996-01-30 11:53:56 +00:00
David Greenman 2c5a630d11 Brought in changes from revs 1.12-1.14 of db_trace.c and related changes:
rewrite of DDB's stack traceback code to fix multiple bugs in it.
1996-01-30 09:19:27 +00:00
David Greenman f2ef6d5414 Brought in change from rev 1.61: increased tmpstk size to 8K. 1996-01-30 08:00:14 +00:00
Gary Palmer df71eff13a Changes from the HEAD branch: add options to load the linux LKM,
mrouted and disable lpd.
1996-01-29 14:47:03 +00:00
David Greenman f8f3569b3f Added fxp device driver. Sorted pci/ entries. 1996-01-29 13:03:14 +00:00
David Greenman c054e98bfe Changes to make this driver work properly with the 2.1 kernel. 1996-01-29 12:59:47 +00:00
David Greenman 5853f90f42 Brought in change from rev 1.61: increased vm_object_cache_max to handle
more small files.
1996-01-29 12:36:36 +00:00
David Greenman 6992d84356 Brought in change from rev 1.8: increase SOMAXCONN to 128. 1996-01-29 12:33:09 +00:00
David Greenman d48372ba27 Brought in changes from rev 1.26 of swtch.s and related changes: bugfix
for savectx() returning garbage in %eax for the child.
1996-01-29 12:31:01 +00:00
David Greenman ae265e49c4 Retrofitted change from rev 1.38: check for failure of vm_map_find when
forking.
1996-01-29 12:11:30 +00:00
David Greenman 8814eee6c9 Retrofitted changes from revs 1.18 and 1.19: fix bugs with malloc area
size calculations.
1996-01-29 11:20:25 +00:00
Bruce Evans 76c2440aa9 Brought in some critical changes from main branch:
part of rev.1.115:
Fix the tests for being a console by reverting to the ones that
were used before the the RB_SERIAL changes...

all of rev.1.123:
Removed builtin list of port addresses.  The address for sio3
conflicted with S3 graphics cards...
1996-01-29 08:17:15 +00:00
Bruce Evans ddf00a1f09 Brought in critical changes from main branch (one in rev.1.19):
Fixed setting of speed B0 - don't output a bogus divisor of 0 and a
random prescaler, just hang up.  This may fix hangup problems with
mgetty.
1996-01-29 04:44:13 +00:00
cvs2svn 3ec408c6eb This commit was manufactured by cvs2svn to create branch 'RELENG_2_1_0'. 1996-01-29 00:33:03 +00:00
Rodney W. Grimes bc9112fb36 Add missing ${DESTDIR} to afterinstall: target. (cvs update -j1.4 -j1.5) 1996-01-28 00:00:10 +00:00
Jordan K. Hubbard c591b1e93f Merge from HEAD, modulo a tweak to get it to compile under 2.1. This code
has also been tested under 2.1.
1996-01-21 20:18:38 +00:00
Jordan K. Hubbard 91d82037e6 Bring in various bug fixes from the HEAD. 1996-01-21 20:11:54 +00:00
Nate Williams 161a0e34c6 Added a comment just before the npx0 device.
# Mandatory, don't remove
1996-01-20 06:13:20 +00:00
Stefan Eßer ad8679e1c4 Improve PCI probe messages by printing the bus number.
Add missing newline to PCI to PCI bridge message.

Submitted by:   Matt Thomas <[email protected]>
1996-01-19 19:21:03 +00:00
Stefan Eßer 45b89a0d6c Fix bad typo: > was used instead of >> ...
Submitted by:   Matt Thomas <[email protected]>
1996-01-19 19:15:36 +00:00
David Greenman 9314eadda6 Retrofitted fix from rev 1.46: make sure mp is busy before doing a stat on
it.
1996-01-16 13:09:33 +00:00
Nate Williams eaba91132d The order of entries in the host file was reversed. It should have been
Internet address
official host name
aliases

Submitted by:   [email protected] (David Kelly)
1996-01-15 19:11:59 +00:00
Jordan K. Hubbard fbc488b5aa Merge change 1.57 from HEAD. Leave other diffs alone for now as it
appears that some infrastructural changes have occurred as well.
1996-01-15 06:14:12 +00:00
Jordan K. Hubbard 84e4066ec0 Merge from HEAD. 1996-01-14 11:45:47 +00:00
David Greenman 1b451fbf5c Brought in changes from revs 1.14-1.15: fix for multicasting on point-to-
point interfaces.
1996-01-13 10:49:45 +00:00
David Greenman 889e6518dc Retrofitted my double-fault handler changes from -current. These are too
important to leave out of the next release.
1996-01-13 10:46:51 +00:00
Justin T. Gibbs 0ba45696f3 Merge with HEAD:
Take a different approach to the SPIORDY race condition.  Simply clear
SPIORDY just before we ack on the bus so that there is no chance to
see SPIORDY for the same byte twice.

Make some small modifications so that the Linux aic7xxx driver can use
our sequencer and register definition files verbatum.
1996-01-11 06:20:57 +00:00
Justin T. Gibbs a6f4abbee5 remove reference to i386/isa/aha1742.c. This driver has moved into
i386/eisa.
1996-01-11 05:12:19 +00:00
Joerg Wunsch f90008a627 Move the -r flag from HEAD here: it allows to export regular files,
which seems to be required for diskless Suns in order to mount their
swap space.
1996-01-11 00:12:45 +00:00
Jordan K. Hubbard 6b419c555d Merge from HEAD. 1996-01-10 13:59:24 +00:00
Joerg Wunsch 182688c219 Merge from HEAD: be more verbose about the floppy formats, and
mention the sony650 MOD format.
1996-01-09 21:47:48 +00:00
Justin T. Gibbs f36f57f79d Merge with HEAD. Don't set DSCommand. 1996-01-09 16:19:27 +00:00
Justin T. Gibbs a23c7a796b Merge with HEAD. Change inb_first to not poll SPIORDY. 1996-01-09 16:19:04 +00:00
Jordan K. Hubbard 3de47b52bc Merge strength-reduction fix from HEAD.
Submitted by:	Richard Henderson <[email protected]>
1996-01-08 03:32:29 +00:00
Justin T. Gibbs 201ac2aba0 Merge with HEAD.
Add adapter_softc entry to the scsi_link structure.
1996-01-08 02:54:46 +00:00
Justin T. Gibbs de0c965f3a Merge with HEAD.
Fix a printf (was missing an arg).

Write the new value of CSIZE_LATTIME back into configuration space.
Turn CACHETHEN on in DSCommand.
1996-01-08 02:54:20 +00:00
Justin T. Gibbs c4278ecd9a Merge with HEAD.
Use the adapter_softc field in the scsi_link structure instead of an array
of per unit data.
1996-01-08 02:53:19 +00:00
Justin T. Gibbs 61be425234 Merge with HEAD.
aic7xxx.seq:
Add additional checking to the message out phase.

aic7xxx_reg.h:
Add definition of the DSCommand register.
1996-01-08 02:52:24 +00:00
Joerg Wunsch 73483c5efc Merge in the BUGS section from HEAD. 1996-01-07 15:50:55 +00:00
David Greenman 080bac6d9d Brought in fixes from revs 1.80, 1.82 and 1.83, with slight retrofitting
for 2.1: fix for credentials leak and negative page index bug.
1996-01-07 00:03:00 +00:00
Nate Williams 65d95e784c Added the sliplogin examples files. 1996-01-06 07:34:36 +00:00
Nate Williams 594d476838 Bring in changes from the HEAD.
-Added support for the slip.hosts options 'normal', 'compress', 'noicmp',
 and 'autocmp'.
-Additionly parse /etc/sliphome/slip.slparms* to set keepalive,
 outfill and slunit.
-Make it more POSIXed.
-Describe undocumented stuff.
1996-01-06 07:19:55 +00:00
Nate Williams e945181967 Updated man-page from head. 1996-01-06 07:09:54 +00:00
Justin T. Gibbs 75336e14c1 Merge with HEAD. Check for REJECT_MSG instead of MSG_REJECT in intstat. 1996-01-05 16:19:51 +00:00
Justin T. Gibbs 328503dec0 Merge with HEAD. Revert to safer inb* routines. 1996-01-05 16:19:07 +00:00
Paul Traina 31774e01db Fold in support for QIC-3080 format tape drives from -current. 1996-01-05 06:19:36 +00:00
Jordan K. Hubbard 364f634e45 Merge changes from HEAD 1996-01-05 04:04:46 +00:00
Justin T. Gibbs 87e6b43c79 Merge with HEAD. Null terminate execl's arg list. For some reason this
didn't cause a problem on my -current system. :(

Submitted by:	Ron Lenk <[email protected]>
1996-01-05 01:52:24 +00:00
cvs2svn ceb57be184 This commit was manufactured by cvs2svn to create branch 'RELENG_2_1_0'. 1996-01-04 16:10:43 +00:00
Justin T. Gibbs dfcd331efa Merge with HEAD. Much improved aic7xxx driver. 1996-01-04 08:55:14 +00:00
Justin T. Gibbs 4fb36a5b96 Merge with HEAD. Much improved aic7xxx driver and reorganized bt driver. 1996-01-04 08:54:55 +00:00
Justin T. Gibbs 1dfc49cb89 Remove old eisaconf conflict detection code from the isa* files. Remove
old ISA versions of eisaconf drivers.
1996-01-04 08:54:13 +00:00
Justin T. Gibbs b528a54887 Add esiaconf support from HEAD. 1996-01-04 08:53:03 +00:00
Justin T. Gibbs e23753eb90 Merge with HEAD. Probe the PCI and Eisa busses before the ISA bus and
enable interrupts before any bus configuration is performed.
1996-01-04 08:52:42 +00:00
Justin T. Gibbs 8375fc8247 Merge with HEAD. Add eisaconf support and update all eisaconf based drivers
(ahb, ahc, bt).
1996-01-04 08:51:31 +00:00
Justin T. Gibbs 6f69ddf5a7 Merge with HEAD. New and improved aic7xxx driver. 1996-01-04 08:50:01 +00:00
Justin T. Gibbs 7937f0334c Add pci/bt9xx.c from HEAD 1996-01-04 08:49:25 +00:00
Justin T. Gibbs 55b0199189 Add eisaconf support from HEAD. 1996-01-04 08:48:48 +00:00
David Greenman c04800cf04 Brought in changes from revs 1.76, 1.77, 1.78: disabled sleep in ttyflush
that causes a panic, adjusted the output queue reserved/max counts.
1996-01-03 17:59:21 +00:00
David Greenman dc8de77c8a Brought in changes from rev 1.89: fixed two cases of "=" that should have
been "==", updated copyright, other minor changes.
1996-01-03 17:51:32 +00:00
David Greenman 9de403ff4c Brought in part of rev 1.42: add SWI_NET_MASK to SWI_TTY_MASK. 1996-01-03 17:12:01 +00:00
Peter Wemm 41b96f63b7 Backport the reserved port checking for mountd requests from the NFSv3 code
in -current.  The existing code was not very useful... :-(
1996-01-03 14:14:49 +00:00
Peter Wemm 3586b69e5a Copy in change from rev 1.4 to fix the infamous bug which allows
users to avoid the ``secure mode''...
1996-01-03 09:53:43 +00:00
Jordan K. Hubbard ac8e73ce3d Bring in changes from HEAD. 1996-01-02 06:42:46 +00:00
Joerg Wunsch 5cfd2d35d1 Add io.4 to the 2.1.X branch.
Reviewed by:	peter
1996-01-01 18:04:55 +00:00
cvs2svn 9963660cb5 This commit was manufactured by cvs2svn to create branch 'RELENG_2_1_0'. 1996-01-01 11:01:14 +00:00
Joerg Wunsch 15a04a0c6d Sigh, this was long overdue... Pull the fix from rev 1.126 into
the 2.1.X branch: only allow EUID==0 processes to gain IO privs.
1995-12-31 09:29:52 +00:00
Joerg Wunsch 0df1c0c43b Merge from HEAD:
. fix the bug that caused ``tr a-z m-za-l'' to fail
. use setlocale() while i've been here
1995-12-30 18:17:56 +00:00
Joerg Wunsch ce2437ec6e Update man page from HEAD. 1995-12-30 13:53:17 +00:00
Gary Palmer e630fa7528 Bring in fixes from the head 1995-12-29 12:26:00 +00:00
Joerg Wunsch b85d7489de >Number: 917
>Category:       bin
>Synopsis:       -s option in jot is broken

Submitted by:	[email protected] (Edward Wang)
1995-12-29 12:20:24 +00:00
Joerg Wunsch a1d7610881 I report a problem about shmget(). (I'm using FreeBSD-2.1.0R)
int shmget(key_t key, int size, int shmflg);

If the 'key' has already existed in the system and set 'shmflg'
as '(IPC_CREAT|IPC_EXC)', then shmget() must return the error 'EEXIST'.

Submitted by:   [email protected] (Mihoko Tanaka)
1995-12-26 16:05:08 +00:00
Joerg Wunsch cd37f582f8 Add /tftpboot as an argument to the commented-out example for tftp, so
people don't compromise their system by blindly un-commenting the
entry.
1995-12-23 17:12:49 +00:00
Joerg Wunsch 9bb2ad4cd1 Bring the fixes from rev 1.4 in both files into 2.1.X: declare
SHM_{R,W,X} and SEM_{R,W,X}.
1995-12-23 17:09:49 +00:00
Joerg Wunsch e3d10a0b91 Bring the AF_UNIX fix from rev. 1.9 into the 2.1.X branch. 1995-12-23 17:08:24 +00:00
Jordan K. Hubbard 45ca3bdf51 Also merge from HEAD, just to be consistent. 1995-12-23 15:24:52 +00:00
Jordan K. Hubbard 01cc4b256f Merge from HEAD. I need this stuff for sysinstall. 1995-12-23 15:22:10 +00:00
Peter Wemm b7d2bb0d1e Add the subdirectories to share/examples/cvs from HEAD so that
cvs from -current can be compiled/installed on a -stable system
without too much pain.
1995-12-22 23:37:50 +00:00
Peter Wemm b2c36e6c6e One line change to each of these from HEAD..
Add a name to the context structures for compatability
with the CVS in -current.  Basically,
typedef struct { ... } MDx_CTX; becomes
typedef struct MDxContext { ... } MDx_CTX;
1995-12-22 22:09:31 +00:00
David Greenman 7d61a9a29e Brought in change from rev 1.54: fix bug with using lots of CDROM drives. 1995-12-21 12:01:50 +00:00
Nate Williams f708f5f5b8 Bring in the changes from ver 1.11 to allow this to compile with C++.
---
date: 1995/08/26 20:46:43;  author: bde;  state: Exp;  lines: +2 -4
Don't declare a nonexistent function.

Fix formatting of recent changes.
---
1995-12-20 17:29:53 +00:00
Nate Williams f61f06eff2 C++ doesn't allow implicit conversions from 'void *' to other pointer
types.   Explicitly cast the pointer to the correct type.
1995-12-20 17:06:35 +00:00
Jordan K. Hubbard be20b9f22e Remove 2 US mirrors which have either died or gone to reduced user logins. 1995-12-17 07:45:36 +00:00
Joerg Wunsch d3d1f45931 Move over from 2.2-current: allow for ``su -c''. 1995-12-11 23:06:12 +00:00
Joerg Wunsch e91d611053 Move all known fixes from 2.2-current into the 2.1 branch, with the
minor exception of rev 1.10 of parser.c (where i'd like to see if any
ill side-effects might show up).
1995-12-11 23:05:26 +00:00
Joerg Wunsch 0ed4f23096 Move over some /bin/sh-specific cruft to there.
(Fix brought over from 2.2-current.)
1995-12-11 23:01:41 +00:00
Joerg Wunsch 4dd1af5a97 Move over the fix from 2.2-current for nice(1) dumping core when faced
with no command arguments at all.
1995-12-11 23:00:36 +00:00
Joerg Wunsch 5ed3d9fa9e Finally fix expr in all respects, so it's now handling all numeric and
string cases correctly.

Moved over from 2.2-current.
1995-12-11 22:59:22 +00:00
Jordan K. Hubbard 5b79a0d6a8 Fix a subtle bug that *may* be responsible for the clobber-disk-zero bug.
Also try to see if a device can still be `detected' by checking errno == EACCES
even if the open fails (idea from Bruce).
1995-12-11 16:30:25 +00:00
David Greenman cd6c9c2250 Brought in change from rev 1.6: initialize some variables that need to be
initialized. msgs would do some strange things if the bounds file didn't
exist or contained garbage.
1995-12-06 07:38:35 +00:00
Jordan K. Hubbard 3c14a01aef Make SLIP work properly again.
Submitted by:	Dave Rivers <no valid email addr>
1995-12-05 00:24:00 +00:00
Jordan K. Hubbard d15a8445ee Merge 1.12 from HEAD. 1995-12-04 02:29:40 +00:00
Jordan K. Hubbard e52325f993 mountdbtab -> mountdtab; whoops!
A small extra diagnostic for loading packages.
1995-12-04 02:22:02 +00:00
Satoshi Asami 3ffb95b544 Update Japanese mirror list.
Requested by:	jkh
1995-11-21 10:18:18 +00:00
Jordan K. Hubbard c109e50d44 Update Polish site entry. 1995-11-19 19:52:59 +00:00
Jordan K. Hubbard e2152a520a Merge from HEAD. 1995-11-19 19:52:21 +00:00
Jordan K. Hubbard 2651d5ab35 Merge from HEAD. 1995-11-19 19:41:00 +00:00
Jordan K. Hubbard 51f2fae106 Merge from HEAD. 1995-11-19 19:39:29 +00:00
Jordan K. Hubbard 529168c26d Correct URL for Hong Kong site. 1995-11-19 19:37:38 +00:00
Jordan K. Hubbard 3d2fd688ef Put myname.my.domain by default on the loopback, resulting in less confusing
startup behavior for newly installed hosts not on a network.
1995-11-19 17:53:28 +00:00
Jordan K. Hubbard c21c63f75f Fix bug where /stand/sysinstall wouldn't work post-install with CDROM. 1995-11-19 13:48:32 +00:00
David Greenman 648ccc899d From rev 1.14:
Disallow setgroups() with ngroups=0. There should always be one group (the
effective gid). This works around a panic ("nfsreq nogrps") that occurs
with NFS clients. This change is too late for 2.1-release.

Obtained from:  4.4BSD-Lite2
1995-11-19 01:52:43 +00:00
David Greenman bdf5d34f80 Add missing splx(s) - from rev 1.70. Note that this change is too late for
2.1-release. The effects of the missing splx would be seen on NFS clients
with soft or intr mounted filesystems and then only after a timeout had
occurred.

Submitted by:	dyson
1995-11-19 01:42:34 +00:00
2844 changed files with 204620 additions and 133956 deletions

No files matched your search

+26 -6
View File
@@ -1,4 +1,4 @@
# $Id: Makefile,v 1.57.4.7 1995/11/09 10:57:04 jkh Exp $
# $Id: Makefile,v 1.57.4.16 1996/06/21 19:41:35 markm Exp $
#
# Make command line options:
# -DCLOBBER will remove /usr/include and MOST of /usr/lib
@@ -7,6 +7,7 @@
# -DMAKE_EBONES to build eBones (KerberosIV)
#
# -DNOCLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
# -DNOCLEAN to not clean anything at all
# -DNOCRYPT will prevent building of crypt versions
# -DNOLKM do not build loadable kernel modules
# -DNOOBJDIR do not run ``${MAKE} obj''
@@ -85,19 +86,27 @@ OBJDIR=
.else
OBJDIR= obj
.endif
.if defined(NOCLEAN)
CLEANDIR=
WORLD_CLEANDIST=obj
.else
WORLD_CLEANDIST=cleandist
.if defined(NOCLEANDIR)
CLEANDIR= clean
.else
CLEANDIR= cleandir
.endif
.endif
world: hierarchy mk cleandist includes lib-tools libraries tools
world: hierarchy mk $(WORLD_CLEANDIST) include-tools includes lib-tools libraries build-tools
@echo "--------------------------------------------------------------"
@echo " Rebuilding ${DESTDIR} The whole thing"
@echo "--------------------------------------------------------------"
@echo
${MAKE} depend all install
cd ${.CURDIR}/share/man && ${MAKE} makedb
@echo "make world completed on `date`"
hierarchy:
@echo "--------------------------------------------------------------"
@@ -219,6 +228,7 @@ includes:
cd ${.CURDIR}/lib/libc && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libcurses && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libedit && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libftpio && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libmd && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libmytinfo && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libncurses && ${MAKE} beforeinstall
@@ -231,14 +241,16 @@ includes:
cd ${.CURDIR}/lib/libtermcap && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libcom_err && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libss && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libforms && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libscsi && ${MAKE} beforeinstall
cd ${.CURDIR}/lib/libutil && ${MAKE} beforeinstall
lib-tools:
@echo "--------------------------------------------------------------"
@echo " Rebuilding tools needed to build the libraries"
@echo "--------------------------------------------------------------"
@echo
cd ${.CURDIR}/usr.bin/xinstall && \
${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
cd ${.CURDIR}/gnu/usr.bin/ld && \
${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
cd ${.CURDIR}/usr.bin/ar && \
@@ -295,8 +307,6 @@ libraries:
cd ${.CURDIR}/usr.bin/lex/lib && \
${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
.if exists(eBones) && !defined(NOCRYPT) && defined(MAKE_EBONES)
cd ${.CURDIR}/eBones/des && \
${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
cd ${.CURDIR}/eBones/lib && \
${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
.endif
@@ -305,7 +315,15 @@ libraries:
${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
.endif
tools:
include-tools:
@echo "--------------------------------------------------------------"
@echo " Rebuilding tools needed to build the includes"
@echo "--------------------------------------------------------------"
@echo
cd ${.CURDIR}/usr.bin/xinstall && \
${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
build-tools:
@echo "--------------------------------------------------------------"
@echo " Rebuilding ${DESTDIR} C compiler, make, sgmlfmt, and zic(8)"
@echo "--------------------------------------------------------------"
@@ -318,6 +336,8 @@ tools:
${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
cd ${.CURDIR}/share/sgml && \
${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
cd ${.CURDIR}/gnu/usr.bin/groff && \
${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
cd ${.CURDIR}/usr.sbin/zic && \
${MAKE} depend all install ${CLEANDIR} ${OBJDIR}
+3 -37
View File
@@ -1,4 +1,4 @@
; $Id: TODO,v 1.11 1995/04/05 13:16:30 jkh Exp $
; $Id: TODO,v 1.12 1995/04/23 21:34:23 paul Exp $
** To skip this preamble, search forward for the pattern `**'.
@@ -49,21 +49,12 @@ Thanks!
** --- cut here ---
TASKID: 940820002
TASK: Add Linux/Crynwr compatible plip mode to lpt.c
DETAIL: { Look at the crynwr packet-driver plip.asm (ftp::ftp.ftp.com)
and the linux driver for reference. }
EMAIL: <phk>
CATS: kernel networking
GRADE: ADVANCED
STATUS: OPEN (*)
TASKID: 940820003
TASK: Add laptop-feature to wd.c
DETAIL: { If disk just spun up, do sync when we have it running. Need
to detect that disk was turned off, e.g. had a long delay in becomming
ready again. }
EMAIL: <phk>
EMAIL: <phk, nate>
CATS: kernel laptop
GRADE: INTERMEDIATE
STATUS: OPEN
@@ -76,21 +67,11 @@ also requires some modification of existing drivers to support being used
by PCMCIA cards. This task is both really hard and comparatively easy;
hard because it's a big job, easy because others have already gone much of
the way and you have their work for reference. }
EMAIL: <phk>
EMAIL: <phk, nate>
CATS: kernel laptop
GRADE: ADVANCED
STATUS: IN PROGRESS
TASKID: 940820006
TASK: Add bootp/DHCP to the generic ethernet code.
DETAIL: { Implement an ioctl(), which will send a bootp on a particular
interface and return the data in a usable format. OR make a program which uses
existing ioctls to do it. See RFC153[34] for information on DHCP. }
EMAIL: <phk>
CATS: kernel networking
GRADE: ADVANCED
STATUS: OPEN (*)
TASKID: 940820007
TASK: Add bootp/DHCP capability to slip driver.
DETAIL: { Cisco's products implement this. Both master and slave side would be
@@ -149,18 +130,3 @@ EMAIL: <rgrimes, phk>
CATS: user
GRADE: INTERMEDIATE
STATUS: OPEN
TASKID: 95031701
TASK: Implement a file system debugger (fsdb)
DETAIL: { Traditionally, there has been a fsdb(8) program in Unix.
This program is not part of 4.4BSD, but the current system lacks
some utility to low-level step through the file system and repair
(or damage:) something in case fsck tells about problems, but the
administrator is unlucky with the suggested actions of fsck.
The original fsdb had a terrible syntax, something more rationale
should be built instead. }
EMAIL: <joerg>
CATS: user
GRADE: ADVANCED
STATUS: OPEN
+1 -1
View File
@@ -1,5 +1,5 @@
# From: @(#)Makefile 8.1 (Berkeley) 5/31/93
# $Id$
# $Id: Makefile,v 1.2 1994/09/18 21:25:26 wollman Exp $
SUBDIR= cat chmod cp csh date dd df domainname echo ed expr hostname \
kill ln ls mkdir mv pax ps pwd rcp rm rmail rmdir sh sleep \
+2 -1
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)chmod.1 8.4 (Berkeley) 3/31/94
.\" $Id$
.\" $Id: chmod.1,v 1.2 1994/09/24 02:53:37 davidg Exp $
.\"
.Dd March 31, 1994
.Dt CHMOD 1
@@ -274,6 +274,7 @@ There's no
.Ar perm
option for the naughty bits.
.Sh SEE ALSO
.Xr chflags 1 ,
.Xr install 1 ,
.Xr chmod 2 ,
.Xr stat 2 ,
+1 -1
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)cp.1 8.3 (Berkeley) 4/18/94
.\" $Id$
.\" $Id: cp.1,v 1.2 1994/09/24 02:53:40 davidg Exp $
.\"
.Dd April 18, 1994
.Dt CP 1
+1 -1
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: cp.c,v 1.5 1995/04/02 00:49:16 bde Exp $
* $Id: cp.c,v 1.6 1995/05/30 00:06:21 rgrimes Exp $
*/
#ifndef lint
+1 -1
View File
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)extern.h 8.2 (Berkeley) 4/1/94
* $Id$
* $Id: extern.h,v 1.2 1994/09/24 02:53:41 davidg Exp $
*/
typedef struct {
+1 -1
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: utils.c,v 1.5 1995/10/03 12:55:01 bde Exp $
* $Id: utils.c,v 1.3.4.2 1995/10/05 07:24:24 davidg Exp $
*/
#ifndef lint
+1 -1
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: const.c,v 1.2 1994/09/24 02:53:48 davidg Exp $
* $Id: const.c,v 1.3 1995/05/30 00:06:29 rgrimes Exp $
*/
#ifndef lint
+1 -1
View File
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)csh.1 8.2 (Berkeley) 1/21/94
.\" $Id: csh.1,v 1.2 1994/09/24 02:53:49 davidg Exp $
.\" $Id: csh.1,v 1.3 1995/05/06 13:52:29 ache Exp $
.\"
.Dd January 21, 1994
.Dt CSH 1
+1 -1
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: csh.c,v 1.3 1995/05/30 00:06:30 rgrimes Exp $
* $Id: csh.c,v 1.3.4.1 1995/08/25 02:55:47 davidg Exp $
*/
#ifndef lint
+1 -1
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: func.c,v 1.2 1994/09/24 02:54:04 davidg Exp $
* $Id: func.c,v 1.3 1995/05/30 00:06:34 rgrimes Exp $
*/
#ifndef lint
+2 -2
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)date.1 8.2 (Berkeley) 11/17/93
.\" $Id: date.1,v 1.5 1995/04/03 20:08:32 joerg Exp $
.\" $Id: date.1,v 1.5.4.1 1995/08/28 10:33:04 davidg Exp $
.\"
.Dd November 17, 1993
.Dt DATE 1
@@ -127,7 +127,7 @@ Hour, a number from 0 to 23.
.It Ar mm
Minutes, a number from 0 to 59.
.It Ar .ss
Seconds, a number from 0 to 61 (59 plus a a maximum of two leap seconds).
Seconds, a number from 0 to 61 (59 plus a maximum of two leap seconds).
.El
.Pp
Everything but the minutes is optional.
+1 -1
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: date.c,v 1.4 1995/04/03 20:08:33 joerg Exp $
* $Id: date.c,v 1.4.4.1 1995/08/28 10:31:25 davidg Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: dd.c,v 1.3 1995/01/17 22:55:59 ache Exp $
* $Id: dd.c,v 1.4 1995/01/17 23:04:29 ache Exp $
*/
#ifndef lint
+2 -5
View File
@@ -35,7 +35,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: df.c,v 1.6 1995/03/19 13:28:15 joerg Exp $
* $Id: df.c,v 1.7.4.2 1996/06/05 02:35:24 jkh Exp $
*/
#ifndef lint
@@ -386,10 +386,7 @@ ufs_df(file, maxwidth)
sfsp->f_blocks = sblock.fs_dsize;
sfsp->f_bfree = sblock.fs_cstotal.cs_nbfree * sblock.fs_frag +
sblock.fs_cstotal.cs_nffree;
sfsp->f_bavail = (sblock.fs_dsize * (100 - sblock.fs_minfree) / 100) -
(sblock.fs_dsize - sfsp->f_bfree);
if (sfsp->f_bavail < 0)
sfsp->f_bavail = 0;
sfsp->f_bavail = freespace(&sblock, sblock.fs_minfree);
sfsp->f_files = sblock.fs_ncg * sblock.fs_ipg;
sfsp->f_ffree = sblock.fs_cstotal.cs_nifree;
sfsp->f_fsid.val[0] = 0;
+1 -1
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)echo.1 8.1 (Berkeley) 7/22/93
.\" $Id$
.\" $Id: echo.1,v 1.2 1994/09/24 02:55:17 davidg Exp $
.\"
.Dd July 22, 1993
.Dt ECHO 1
+1 -1
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id$
* $Id: echo.c,v 1.2 1994/09/24 02:55:18 davidg Exp $
*/
#ifndef lint
+1 -1
View File
@@ -1,4 +1,4 @@
# $Id: Makefile,v 1.9 1994/10/29 10:13:34 phk Exp $
# $Id: Makefile,v 1.10 1994/12/18 15:15:10 jkh Exp $
PROG= ed
SRCS= buf.c cbc.c glbl.c io.c main.c re.c sub.c undo.c
+1 -1
View File
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: io.c,v 1.3 1994/09/24 02:55:27 davidg Exp $
* $Id: io.c,v 1.4 1995/03/19 13:28:32 joerg Exp $
*/
#ifndef lint
+1 -1
View File
@@ -1,5 +1,5 @@
# /b/source/CVS/src/bin/expr/Makefile,v 1.5 1993/06/14 19:56:06 jtc Exp
# $Id: Makefile,v 1.6 1994/09/24 02:55:36 davidg Exp $
# $Id: Makefile,v 1.7 1995/05/30 00:06:49 rgrimes Exp $
PROG= expr
SRCS= expr.c
+5 -5
View File
@@ -15,7 +15,7 @@
.\" must display the following acknowledgement:
.\" This product includes software developed by Winning Strategies, Inc.
.\" 4. The name of the author may not be used to endorse or promote products
.\" derived from this software withough specific prior written permission
.\" derived from this software without specific prior written permission
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
@@ -28,7 +28,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" $Id: expr.1,v 1.2 1993/10/04 22:07:27 jtc Exp $
.\" $Id: expr.1,v 1.3 1994/04/24 01:18:46 jkh Exp $
.\"
.Dd July 3, 1993
.Dt EXPR 1
@@ -51,8 +51,8 @@ All operators are separate arguments to the
utility.
Characters special to the command interpreter must be escaped.
.Pp
Operators are listed below in order of increasing precidence.
Operators with equal precidence are grouped within { } symbols.
Operators are listed below in order of increasing precedence.
Operators with equal precedence are grouped within { } symbols.
.Bl -tag -width indent
.It Ar expr1 Li | Ar expr2
Returns the evaluation of
@@ -66,7 +66,7 @@ Returns the evaluation of
if neither expression evaluates to an empty string or zero;
otherwise, returns zero.
.It Ar expr1 Li "{=, >, >=, <, <=, !=}" Ar expr2
Returns the results of integer comparision if both arguments are integers;
Returns the results of integer comparison if both arguments are integers;
otherwise, returns the results of string comparison using the locale-specific
collation sequence.
The result of each comparison is 1 if the specified relation is true,
+31 -33
View File
@@ -4,7 +4,7 @@
*
* Largely rewritten by J.T. Conklin ([email protected])
*
* $Id: expr.y,v 1.9 1995/03/19 13:28:41 joerg Exp $
* $Id: expr.y,v 1.11 1995/11/18 18:05:03 joerg Exp $
*/
#include <stdio.h>
@@ -15,7 +15,7 @@
#include <err.h>
enum valtype {
integer, string
integer, numeric_string, string
} ;
struct val {
@@ -56,7 +56,6 @@ char **av;
%left <val> '+' '-'
%left <val> '*' '/' '%'
%left <val> ':'
%left UNARY
%token <val> TOKEN
%type <val> start expr
@@ -94,7 +93,7 @@ int i;
vp = (struct val *) malloc (sizeof (*vp));
if (vp == NULL) {
err (2, NULL);
errx (2, "malloc() failed");
}
vp->type = integer;
@@ -111,7 +110,7 @@ char *s;
vp = (struct val *) malloc (sizeof (*vp));
if (vp == NULL || ((vp->u.s = strdup (s)) == NULL)) {
err (2, NULL);
errx (2, "malloc() failed");
}
for(i = 1, isint = isdigit(s[0]) || s[0] == '-';
@@ -122,9 +121,10 @@ char *s;
isint = 0;
}
vp->type = string;
if(isint)
to_integer(vp);
if (isint)
vp->type = numeric_string;
else
vp->type = string;
return vp;
}
@@ -134,7 +134,7 @@ void
free_value (vp)
struct val *vp;
{
if (vp->type == string)
if (vp->type == string || vp->type == numeric_string)
free (vp->u.s);
}
@@ -143,34 +143,19 @@ int
to_integer (vp)
struct val *vp;
{
char *s;
int neg;
int i;
if (vp->type == integer)
return 1;
s = vp->u.s;
i = 0;
neg = (*s == '-');
if (neg)
s++;
for (;*s; s++) {
if (!isdigit (*s))
return 0;
i *= 10;
i += *s - '0';
}
if (vp->type == string)
return 0;
/* vp->type == numeric_string, make it numeric */
i = atoi(vp->u.s);
free (vp->u.s);
if (neg)
i *= -1;
vp->u.i = i;
vp->type = integer;
vp->u.i = i;
return 1;
}
@@ -180,12 +165,12 @@ struct val *vp;
{
char *tmp;
if (vp->type == string)
if (vp->type == string || vp->type == numeric_string)
return;
tmp = malloc (25);
if (tmp == NULL) {
err (2, NULL);
errx (2, "malloc() failed");
}
sprintf (tmp, "%d", vp->u.i);
@@ -198,6 +183,7 @@ int
isstring (vp)
struct val *vp;
{
/* only TRUE if this string is not a valid integer */
return (vp->type == string);
}
@@ -241,7 +227,7 @@ struct val *vp;
int yyparse ();
void
int
main (argc, argv)
int argc;
char **argv;
@@ -257,7 +243,7 @@ char **argv;
else
printf ("%s\n", result->u.s);
exit (is_zero_or_null (result));
return (is_zero_or_null (result));
}
int
@@ -306,6 +292,8 @@ struct val *a, *b;
to_string (b);
r = make_integer (strcoll (a->u.s, b->u.s) == 0);
} else {
(void)to_integer(a);
(void)to_integer(b);
r = make_integer (a->u.i == b->u.i);
}
@@ -325,6 +313,8 @@ struct val *a, *b;
to_string (b);
r = make_integer (strcoll (a->u.s, b->u.s) > 0);
} else {
(void)to_integer(a);
(void)to_integer(b);
r= make_integer (a->u.i > b->u.i);
}
@@ -344,6 +334,8 @@ struct val *a, *b;
to_string (b);
r = make_integer (strcoll (a->u.s, b->u.s) < 0);
} else {
(void)to_integer(a);
(void)to_integer(b);
r = make_integer (a->u.i < b->u.i);
}
@@ -363,6 +355,8 @@ struct val *a, *b;
to_string (b);
r = make_integer (strcoll (a->u.s, b->u.s) >= 0);
} else {
(void)to_integer(a);
(void)to_integer(b);
r = make_integer (a->u.i >= b->u.i);
}
@@ -382,6 +376,8 @@ struct val *a, *b;
to_string (b);
r = make_integer (strcoll (a->u.s, b->u.s) <= 0);
} else {
(void)to_integer(a);
(void)to_integer(b);
r = make_integer (a->u.i <= b->u.i);
}
@@ -401,6 +397,8 @@ struct val *a, *b;
to_string (b);
r = make_integer (strcoll (a->u.s, b->u.s) != 0);
} else {
(void)to_integer(a);
(void)to_integer(b);
r = make_integer (a->u.i != b->u.i);
}
+2 -2
View File
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)hostname.1 8.1 (Berkeley) 5/31/93
.\" $Id$
.\" $Id: hostname.1,v 1.2.6.2 1996/06/05 02:35:38 jkh Exp $
.\"
.Dd May 31, 1993
.Dt HOSTNAME 1
@@ -58,7 +58,7 @@ Trims off any domain information from the printed
name.
.El
.Sh SEE ALSO
.Xr gethostname 2
.Xr gethostname 3
.Sh HISTORY
The
.Nm hostname
+1 -1
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: ln.c,v 1.4 1994/09/24 02:55:48 davidg Exp $
* $Id: ln.c,v 1.5 1994/12/06 18:50:44 bde Exp $
*/
#ifndef lint
+1 -1
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: ls.c,v 1.5 1995/03/19 13:28:44 joerg Exp $
* $Id: ls.c,v 1.6 1995/03/23 19:05:00 phk Exp $
*/
#ifndef lint
+1 -1
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: print.c,v 1.4 1995/05/30 00:06:50 rgrimes Exp $
* $Id: print.c,v 1.4.4.1 1995/08/28 10:30:27 davidg Exp $
*/
#ifndef lint
+1 -1
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: util.c,v 1.3 1994/09/24 02:55:58 davidg Exp $
* $Id: util.c,v 1.4 1994/10/09 15:25:23 ache Exp $
*/
#ifndef lint
+1 -1
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)mv.1 8.1 (Berkeley) 5/31/93
.\" $Id: mv.1,v 1.2 1994/09/24 02:56:06 davidg Exp $
.\" $Id: mv.1,v 1.2.6.1 1995/08/29 11:14:21 davidg Exp $
.\"
.Dd May 31, 1993
.Dt MV 1
+1 -1
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: mv.c,v 1.3 1995/10/07 10:42:48 bde Exp $
* $Id: mv.c,v 1.2.6.1 1995/10/09 05:12:21 davidg Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: ar_io.c,v 1.2 1994/09/24 02:56:11 davidg Exp $
* $Id: ar_io.c,v 1.3 1995/05/30 00:06:52 rgrimes Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: ar_subs.c,v 1.2 1994/09/24 02:56:12 davidg Exp $
* $Id: ar_subs.c,v 1.3 1995/05/30 00:06:52 rgrimes Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: buf_subs.c,v 1.2 1994/09/24 02:56:13 davidg Exp $
* $Id: buf_subs.c,v 1.3 1995/05/30 00:06:53 rgrimes Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id$
* $Id: cache.c,v 1.2 1994/09/24 02:56:14 davidg Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: cpio.c,v 1.2 1994/09/24 02:56:16 davidg Exp $
* $Id: cpio.c,v 1.3 1995/05/30 00:06:54 rgrimes Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: file_subs.c,v 1.2 1994/09/24 02:56:19 davidg Exp $
* $Id: file_subs.c,v 1.3 1995/05/30 00:06:56 rgrimes Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: ftree.c,v 1.2 1994/09/24 02:56:20 davidg Exp $
* $Id: ftree.c,v 1.3 1995/05/30 00:06:57 rgrimes Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: gen_subs.c,v 1.5 1995/08/07 19:17:36 wollman Exp $
* $Id: gen_subs.c,v 1.4.4.1 1995/08/28 10:41:14 davidg Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: options.c,v 1.2 1994/09/24 02:56:22 davidg Exp $
* $Id: options.c,v 1.3 1995/03/19 13:28:53 joerg Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: pat_rep.c,v 1.3 1995/03/19 13:28:56 joerg Exp $
* $Id: pat_rep.c,v 1.4 1995/05/30 00:06:59 rgrimes Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: pax.c,v 1.2 1994/09/24 02:56:27 davidg Exp $
* $Id: pax.c,v 1.3 1995/05/30 00:07:00 rgrimes Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id$
* $Id: sel_subs.c,v 1.2 1994/09/24 02:56:29 davidg Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: tables.c,v 1.2 1994/09/24 02:56:34 davidg Exp $
* $Id: tables.c,v 1.3 1995/05/30 00:07:01 rgrimes Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: tar.c,v 1.2 1994/09/24 02:56:37 davidg Exp $
* $Id: tar.c,v 1.3 1995/05/30 00:07:03 rgrimes Exp $
*/
#ifndef lint
+1 -1
View File
@@ -34,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id$
* $Id: tty_subs.c,v 1.2 1994/09/24 02:56:38 davidg Exp $
*/
#ifndef lint
+1 -1
View File
@@ -1,5 +1,5 @@
# @(#)Makefile 8.1 (Berkeley) 6/2/93
# $Id: Makefile,v 1.4 1995/04/15 03:23:36 davidg Exp $
# $Id: Makefile,v 1.5 1995/04/15 03:31:19 davidg Exp $
PROG= ps
SRCS= fmt.c keyword.c nlist.c print.c ps.c
+1 -1
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: fmt.c,v 1.4 1994/11/10 23:25:12 ats Exp $
* $Id: fmt.c,v 1.5 1995/03/09 20:40:17 davidg Exp $
*/
#ifndef lint
+1 -1
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: keyword.c,v 1.7 1995/09/26 17:48:58 peter Exp $
* $Id: keyword.c,v 1.5.6.1 1995/10/05 07:46:36 davidg Exp $
*/
#ifndef lint
+1 -1
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: print.c,v 1.10 1995/09/26 17:48:59 peter Exp $
* $Id: print.c,v 1.7.4.2 1995/10/05 07:46:37 davidg Exp $
*/
#ifndef lint
+18 -4
View File
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)ps.1 8.3 (Berkeley) 4/18/94
.\" $Id$
.\" $Id: ps.1,v 1.4.6.2 1996/02/22 19:51:39 peter Exp $
.\"
.Dd April 18, 1994
.Dt PS 1
@@ -47,6 +47,7 @@
.Op Fl o Ar fmt
.Op Fl p Ar pid
.Op Fl t Ar tty
.Op Fl U Ar username
.Op Fl W Ar swap
.Nm ps
.Op Fl L
@@ -54,7 +55,7 @@
.Nm \&Ps
displays a header line followed by lines containing information about your
processes that have controlling terminals.
This information is sorted by process
This information is sorted by controlling terminal, then by process
.Tn ID .
.Pp
The information displayed is selected based on a set of keywords (see the
@@ -68,6 +69,12 @@ The default output format includes, for each process, the process'
controlling terminal, cpu time (including both user and system time),
state, and associated command.
.Pp
The process file system (see
.Xr procfs 5
\&) should be mounted when
.Nm
is executed, otherwise not all information will be available.
.Pp
The options are as follows:
.Bl -tag -width indent
.It Fl a
@@ -130,6 +137,9 @@ with the standard input.
.It Fl t
Display information about processes attached to the specified terminal
device.
.It Fl U
Display the processes belonging to the specified
.Tn username .
.It Fl u
Display information associated with the following keywords:
user, pid, %cpu, %mem, vsz, rss, tt, state, start, time and command.
@@ -478,7 +488,7 @@ wait channel (as a symbolic name)
exit or stop status (valid only for stopped or zombie process)
.El
.Sh FILES
.Bl -tag -width /var/run/kvm_kernel.db -compact
.Bl -tag -width /var/db/kvm_kernel.db -compact
.It Pa /dev
special files and device names
.It Pa /dev/drum
@@ -487,16 +497,20 @@ default swap device
default kernel memory
.It Pa /var/run/dev.db
/dev name database
.It Pa /var/run/kvm_kernel.db
.It Pa /var/db/kvm_kernel.db
system namelist database
.It Pa /kernel
default system namelist
.It Pa /proc
the mount point of
.Xr procfs 5
.El
.Sh SEE ALSO
.Xr kill 1 ,
.Xr w 1 ,
.Xr kvm 3 ,
.Xr strftime 3 ,
.Xr procfs 5 ,
.Xr pstat 8
.Sh BUGS
Since
+15 -4
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: ps.c,v 1.6 1995/03/19 13:29:06 joerg Exp $
* $Id: ps.c,v 1.7.4.1 1996/02/22 19:51:40 peter Exp $
*/
#ifndef lint
@@ -62,6 +62,7 @@ static char sccsid[] = "@(#)ps.c 8.4 (Berkeley) 4/2/94";
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pwd.h>
#include <unistd.h>
#include "ps.h"
@@ -109,6 +110,7 @@ main(argc, argv)
struct kinfo_proc *kp;
struct varent *vent;
struct winsize ws;
struct passwd *pwd;
dev_t ttydev;
pid_t pid;
uid_t uid;
@@ -133,7 +135,7 @@ main(argc, argv)
ttydev = NODEV;
memf = nlistf = swapf = NULL;
while ((ch = getopt(argc, argv,
"aCeghjLlM:mN:O:o:p:rSTt:uvW:wx")) != EOF)
"aCeghjLlM:mN:O:o:p:rSTt:U:uvW:wx")) != EOF)
switch((char)ch) {
case 'a':
all = 1;
@@ -214,6 +216,14 @@ main(argc, argv)
ttydev = sb.st_rdev;
break;
}
case 'U':
pwd = getpwnam(optarg);
if (pwd == NULL)
errx(1, "%s: no such user", optarg);
uid = pwd->pw_uid;
endpwent();
xflg++; /* XXX: intuitive? */
break;
case 'u':
parsefmt(ufmt);
sortby = SORTCPU;
@@ -271,7 +281,8 @@ main(argc, argv)
if (!fmt)
parsefmt(dfmt);
if (!all && ttydev == NODEV && pid == -1) /* XXX - should be cleaner */
/* XXX - should be cleaner */
if (!all && ttydev == NODEV && pid == -1 && uid == (uid_t)-1)
uid = getuid();
/*
@@ -501,7 +512,7 @@ usage()
(void)fprintf(stderr,
"usage:\t%s\n\t %s\n\t%s\n",
"ps [-aChjlmrSTuvwx] [-O|o fmt] [-p pid] [-t tty]",
"ps [-aChjlmrSTuvwx] [-O|o fmt] [-p pid] [-t tty] [-U user]",
"[-M core] [-N system] [-W swap]",
"ps [-L]");
exit(1);
+2 -2
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: rcp.c,v 1.3 1995/03/19 13:29:14 joerg Exp $
* $Id: rcp.c,v 1.4.4.2 1996/06/05 02:36:15 jkh Exp $
*/
#ifndef lint
@@ -69,7 +69,7 @@ static char sccsid[] = "@(#)rcp.c 8.2 (Berkeley) 4/2/94";
#include "extern.h"
#ifdef KERBEROS
#include <kerberosIV/des.h>
#include <des.h>
#include <kerberosIV/krb.h>
char dst_realm_buf[REALM_SZ];
+1 -1
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)rm.1 8.2 (Berkeley) 4/18/94
.\" $Id$
.\" $Id: rm.1,v 1.2 1994/09/24 02:57:00 davidg Exp $
.\"
.Dd April 18, 1994
.Dt RM 1
+1 -1
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: rm.c,v 1.5 1994/09/24 02:57:02 davidg Exp $
* $Id: rm.c,v 1.6 1995/04/13 13:35:09 ache Exp $
*/
#ifndef lint
+1 -1
View File
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: rmail.c,v 1.4 1995/03/19 13:29:18 joerg Exp $
* $Id: rmail.c,v 1.5 1995/05/30 00:07:08 rgrimes Exp $
*/
#ifndef lint
+6 -1
View File
@@ -1,5 +1,5 @@
# @(#)Makefile 8.1 (Berkeley) 6/8/93
# $Id: Makefile,v 1.6 1994/09/24 02:57:18 davidg Exp $
# $Id: Makefile,v 1.7.6.3 1996/06/05 02:36:21 jkh Exp $
PROG= sh
SRCS= alias.c builtins.c cd.c echo.c error.c eval.c exec.c expand.c \
@@ -11,6 +11,8 @@ DPADD= ${LIBL} ${LIBEDIT} ${LIBTERMCAP}
LDADD= -ll -ledit -ltermcap
LFLAGS= -8 # 8-bit lex scanner for arithmetic
CFLAGS+=-DSHELL -I. -I${.CURDIR}
# for debugging:
#CFLAGS+=-g -DDEBUG=2
.PATH: ${.CURDIR}/bltin ${.CURDIR}/../../usr.bin/printf
CLEANFILES+=\
builtins.c builtins.h init.c mkinit mknodes mksignames mksyntax \
@@ -21,6 +23,9 @@ CLEANFILES+=\
token.def: mktokens
sh ${.CURDIR}/mktokens
${.CURDIR}/builtins:
# just override the default rule
builtins.h builtins.c: ${.CURDIR}/mkbuiltins ${.CURDIR}/builtins
cd ${.CURDIR}; sh mkbuiltins
+10 -1
View File
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* @(#)bltin.h 8.1 (Berkeley) 5/31/93
* $Id$
* $Id: bltin.h,v 1.2.6.1 1995/12/11 23:05:26 joerg Exp $
*/
/*
@@ -47,15 +47,24 @@
#include "../mystring.h"
#ifdef SHELL
#include "../output.h"
#undef stdout
#define stdout out1
#undef stderr
#define stderr out2
#define printf out1fmt
#undef putc
#define putc(c, file) outc(c, file)
#undef putchar
#define putchar(c) out1c(c)
#define fprintf outfmt
#define fputs outstr
#define fflush flushout
#define INITARGS(argv)
#define warnx(a, b, c) { \
char buf[64]; \
(void)snprintf(buf, sizeof(buf), a, b, c); \
error(buf); \
}
#else
#undef NULL
#include <stdio.h>
+2 -1
View File
@@ -35,7 +35,7 @@
# SUCH DAMAGE.
#
# @(#)builtins 8.1 (Berkeley) 5/31/93
# $Id$
# $Id: builtins,v 1.3 1995/10/19 18:42:09 joerg Exp $
#
# This file lists all the builtin commands. The first column is the name
@@ -83,6 +83,7 @@ setvarcmd setvar
shiftcmd shift
trapcmd trap
truecmd : true
ulimitcmd ulimit
umaskcmd umask
unaliascmd unalias
unsetcmd unset
+5 -2
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: cd.c,v 1.3 1994/11/06 01:29:26 jkh Exp $
* $Id: cd.c,v 1.5 1995/11/14 01:04:52 peter Exp $
*/
#ifndef lint
@@ -92,7 +92,10 @@ cdcmd(argc, argv) char **argv; {
dest = ".";
if (dest[0] == '-' && dest[1] == '\0') {
dest = prevdir ? prevdir : curdir;
print = 1;
if (dest)
print = 1;
else
dest = ".";
}
if (*dest == '/' || (path = bltinlookup("CDPATH", 1)) == NULL)
path = nullstr;
+105 -80
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: input.c,v 1.2 1994/09/24 02:57:39 davidg Exp $
* $Id: input.c,v 1.4 1995/11/03 18:50:14 peter Exp $
*/
#ifndef lint
@@ -65,6 +65,7 @@ struct strpush {
struct strpush *prev; /* preceding string on stack */
char *prevstring;
int prevnleft;
int prevlleft;
struct alias *ap; /* if push was associated with an alias */
};
@@ -78,7 +79,8 @@ struct parsefile {
struct parsefile *prev; /* preceding file on stack */
int linno; /* current line */
int fd; /* file descriptor (or -1 if string) */
int nleft; /* number of chars left in buffer */
int nleft; /* number of chars left in line */
int lleft; /* number of lines left in buffer */
char *nextc; /* next char in buffer */
char *buf; /* input buffer */
struct strpush *strpush; /* for pushing strings at this level */
@@ -88,12 +90,11 @@ struct parsefile {
int plinno = 1; /* input line number */
MKINIT int parsenleft; /* copy of parsefile->nleft */
MKINIT int parselleft; /* copy of parsefile->lleft */
char *parsenextc; /* copy of parsefile->nextc */
MKINIT struct parsefile basepf; /* top level input file */
char basebuf[BUFSIZ]; /* buffer for top level input file */
struct parsefile *parsefile = &basepf; /* current input file */
char *pushedstring; /* copy of parsenextc when text pushed back */
int pushednleft; /* copy of parsenleft when text pushed back */
int init_editline = 0; /* editline library initialized? */
int whichprompt; /* 1 == PS1, 2 == PS2 */
@@ -119,7 +120,7 @@ INIT {
RESET {
if (exception != EXSHELLPROC)
parsenleft = 0; /* clear input buffer */
parselleft = parsenleft = 0; /* clear input buffer */
popallfiles();
}
@@ -168,54 +169,31 @@ pgetc() {
return pgetc_macro();
}
static int
pread()
{
int nr;
/*
* Refill the input buffer and return the next input character:
*
* 1) If a string was pushed back on the input, pop it;
* 2) If an EOF was pushed back (parsenleft == EOF_NLEFT) or we are reading
* from a string so we can't refill the buffer, return EOF.
* 3) Call read to read in the characters.
* 4) Delete all nul characters from the buffer.
*/
int
preadbuffer() {
register char *p, *q;
register int i;
register int something;
extern EditLine *el;
if (parsefile->strpush) {
popstring();
if (--parsenleft >= 0)
return (*parsenextc++);
}
if (parsenleft == EOF_NLEFT || parsefile->buf == NULL)
return PEOF;
flushout(&output);
flushout(&errout);
parsenextc = parsefile->buf;
retry:
p = parsenextc = parsefile->buf;
if (parsefile->fd == 0 && el) {
const char *rl_cp;
int len;
rl_cp = el_gets(el, &len);
if (rl_cp == NULL) {
i = 0;
goto eof;
rl_cp = el_gets(el, &nr);
if (rl_cp == NULL)
nr = 0;
else {
/* XXX - BUFSIZE should redesign so not necessary */
strcpy(parsenextc, rl_cp);
}
strcpy(p, rl_cp); /* XXX - BUFSIZE should redesign so not necessary */
i = len;
} else {
regular_read:
i = read(parsefile->fd, p, BUFSIZ - 1);
nr = read(parsefile->fd, parsenextc, BUFSIZ - 1);
}
eof:
if (i <= 0) {
if (i < 0) {
if (nr <= 0) {
if (nr < 0) {
if (errno == EINTR)
goto retry;
if (parsefile->fd == 0 && errno == EWOULDBLOCK) {
@@ -229,57 +207,100 @@ eof:
}
}
}
parsenleft = EOF_NLEFT;
return PEOF;
nr = -1;
}
parsenleft = i - 1; /* we're returning one char in this call */
return nr;
}
/*
* Refill the input buffer and return the next input character:
*
* 1) If a string was pushed back on the input, pop it;
* 2) If an EOF was pushed back (parsenleft == EOF_NLEFT) or we are reading
* from a string so we can't refill the buffer, return EOF.
* 3) If there is more in the buffer, use it; else call read to fill it.
* 4) Process input up to next newline, deleting nul characters.
*/
int
preadbuffer() {
char *p, *q;
int more;
int something;
extern EditLine *el;
char savec;
if (parsefile->strpush) {
popstring();
if (--parsenleft >= 0)
return (*parsenextc++);
}
if (parsenleft == EOF_NLEFT || parsefile->buf == NULL)
return PEOF;
flushout(&output);
flushout(&errout);
again:
if (parselleft <= 0) {
if ((parselleft = pread()) == -1) {
parselleft = parsenleft = EOF_NLEFT;
return PEOF;
}
}
q = p = parsenextc;
/* delete nul characters */
something = 0;
for (;;) {
if (*p == '\0')
for (more = 1; more;) {
switch (*p) {
case '\0':
p++; /* Skip nul */
goto check;
case '\t':
case ' ':
break;
if (*p != ' ' && *p != '\t' && *p != '\n')
case '\n':
parsenleft = q - parsenextc;
more = 0; /* Stop processing here */
break;
default:
something = 1;
p++;
if (--i <= 0) {
*p = '\0';
goto done; /* no nul characters */
break;
}
*q++ = *p++;
check:
if (--parselleft <= 0) {
parsenleft = q - parsenextc - 1;
if (parsenleft < 0)
goto again;
*q = '\0';
more = 0;
}
}
/*
* remove nuls
*/
q = p++;
while (--i > 0) {
if (*p != '\0')
*q++ = *p;
p++;
}
*q = '\0';
if (q == parsefile->buf)
goto retry; /* buffer contained nothing but nuls */
parsenleft = q - parsefile->buf - 1;
done:
savec = *q;
*q = '\0';
if (parsefile->fd == 0 && hist && something) {
INTOFF;
history(hist, whichprompt == 1 ? H_ENTER : H_ADD,
parsefile->buf);
history(hist, whichprompt == 1 ? H_ENTER : H_ADD, parsenextc);
INTON;
}
if (vflag) {
/*
* This isn't right. Most shells coordinate it with
* reading a line at a time. I honestly don't know if its
* worth it.
*/
i = parsenleft + 1;
p = parsefile->buf;
for (; i--; p++)
out2c(*p)
out2str(parsenextc);
flushout(out2);
}
*q = savec;
return *parsenextc++;
}
@@ -316,6 +337,7 @@ pushstring(s, len, ap)
sp = parsefile->strpush = &(parsefile->basestrpush);
sp->prevstring = parsenextc;
sp->prevnleft = parsenleft;
sp->prevlleft = parselleft;
sp->ap = (struct alias *)ap;
if (ap)
((struct alias *)ap)->flag |= ALIASINUSE;
@@ -331,6 +353,7 @@ popstring()
INTOFF;
parsenextc = sp->prevstring;
parsenleft = sp->prevnleft;
parselleft = sp->prevlleft;
/*dprintf("*** calling popstring: restoring to '%s'\n", parsenextc);*/
if (sp->ap)
sp->ap->flag &= ~ALIASINUSE;
@@ -383,7 +406,7 @@ setinputfd(fd, push) {
parsefile->fd = fd;
if (parsefile->buf == NULL)
parsefile->buf = ckmalloc(BUFSIZ);
parsenleft = 0;
parselleft = parsenleft = 0;
plinno = 1;
}
@@ -400,7 +423,7 @@ setinputstring(string, push)
if (push)
pushfile();
parsenextc = string;
parsenleft = strlen(string);
parselleft = parsenleft = strlen(string);
parsefile->buf = NULL;
plinno = 1;
INTON;
@@ -418,6 +441,7 @@ pushfile() {
struct parsefile *pf;
parsefile->nleft = parsenleft;
parsefile->lleft = parselleft;
parsefile->nextc = parsenextc;
parsefile->linno = plinno;
pf = (struct parsefile *)ckmalloc(sizeof (struct parsefile));
@@ -443,6 +467,7 @@ popfile() {
parsefile = pf->prev;
ckfree(pf);
parsenleft = parsefile->nleft;
parselleft = parsefile->lleft;
parsenextc = parsefile->nextc;
plinno = parsefile->linno;
INTON;
+214 -1
View File
@@ -4,6 +4,7 @@
*
* This code is derived from software contributed to Berkeley by
* Kenneth Almquist.
* The ulimit() builtin has been contributed by Joerg Wunsch.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -33,7 +34,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id$
* $Id: miscbltin.c,v 1.4 1995/10/21 00:47:30 joerg Exp $
*/
#ifndef lint
@@ -52,6 +53,18 @@ static char sccsid[] = "@(#)miscbltin.c 8.2 (Berkeley) 4/16/94";
#include "error.h"
#include "mystring.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#if BSD
#include <limits.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
#endif
#undef eflag
extern char **argptr; /* argument list for builtin command */
@@ -166,3 +179,203 @@ umaskcmd(argc, argv) char **argv; {
}
return 0;
}
#if BSD
struct restab {
int resource;
int scale;
char *descript;
};
/* multi-purpose */
#define RLIMIT_UNSPEC (-2)
/* resource */
#define RLIMIT_ALL (-1)
/* mode */
#define RLIMIT_SHOW 0
#define RLIMIT_SET 1
/* what */
#define RLIMIT_SOFT 1
#define RLIMIT_HARD 2
static struct restab restab[] = {
{RLIMIT_CORE, 512, "coredump(512-blocks) "},
{RLIMIT_CPU, 1, "time(seconds) "},
{RLIMIT_DATA, 1024, "datasize(kilobytes) "},
{RLIMIT_FSIZE, 512, "filesize(512-blocks) "},
{RLIMIT_MEMLOCK, 1024, "lockedmem(kilobytes) "},
{RLIMIT_NOFILE, 1, "nofiles(descriptors) "},
{RLIMIT_NPROC, 1, "userprocs(max) "},
{RLIMIT_RSS, 1024, "memoryuse(kilobytes) "},
{RLIMIT_STACK, 1024, "stacksize(kilobytes) "}
};
/* get entry into above table */
static struct restab *
find_resource(resource) {
int i;
struct restab *rp;
for(i = 0, rp = restab;
i < sizeof restab / sizeof(struct restab);
i++, rp++)
if(rp->resource == resource)
return rp;
error("internal error: resource not in table");
return 0;
}
static void
print_resource(rp, what, with_descript) struct restab *rp; {
struct rlimit rlim;
quad_t val;
(void)getrlimit(rp->resource, &rlim);
val = (what == RLIMIT_SOFT)?
rlim.rlim_cur: rlim.rlim_max;
if(with_descript)
out1str(rp->descript);
if(val == RLIM_INFINITY)
out1str("unlimited\n");
else {
val /= (quad_t)rp->scale;
if(val > (quad_t)ULONG_MAX)
out1fmt("> %lu\n", (unsigned long)ULONG_MAX);
else
out1fmt("%lu\n", (unsigned long)val);
}
}
ulimitcmd(argc, argv) char **argv; {
struct rlimit rlim;
char *p;
int i;
int resource = RLIMIT_UNSPEC;
quad_t val;
int what = RLIMIT_UNSPEC;
int mode = RLIMIT_UNSPEC;
int errs = 0, arg = 1;
struct restab *rp;
extern int optreset; /* XXX should be declared in <stdlib.h> */
opterr = 0; /* use own error processing */
optreset = 1;
optind = 1;
while ((i = getopt(argc, argv, "HSacdfnstmlu")) != EOF) {
arg++;
switch(i) {
case 'H':
if(what == RLIMIT_UNSPEC) what = 0;
what |= RLIMIT_HARD;
break;
case 'S':
if(what == RLIMIT_UNSPEC) what = 0;
what |= RLIMIT_SOFT;
break;
case 'a':
if(resource != RLIMIT_UNSPEC) errs++;
resource = RLIMIT_ALL;
mode = RLIMIT_SHOW;
break;
case 'c':
if(resource != RLIMIT_UNSPEC) errs++;
resource = RLIMIT_CORE;
break;
case 'd':
if(resource != RLIMIT_UNSPEC) errs++;
resource = RLIMIT_DATA;
break;
case 'f':
if(resource != RLIMIT_UNSPEC) errs++;
resource = RLIMIT_FSIZE;
break;
case 'n':
if(resource != RLIMIT_UNSPEC) errs++;
resource = RLIMIT_NOFILE;
break;
case 's':
if(resource != RLIMIT_UNSPEC) errs++;
resource = RLIMIT_STACK;
break;
case 't':
if(resource != RLIMIT_UNSPEC) errs++;
resource = RLIMIT_CPU;
break;
case 'm':
if(resource != RLIMIT_UNSPEC) errs++;
resource = RLIMIT_RSS;
break;
case 'l':
if(resource != RLIMIT_UNSPEC) errs++;
resource = RLIMIT_MEMLOCK;
break;
case 'u':
if(resource != RLIMIT_UNSPEC) errs++;
resource = RLIMIT_NPROC;
break;
case '?':
error("illegal option -%c", optopt);
}
}
argc -= optind;
argv += optind;
if(argc > 1)
error("too many arguments");
if(argc == 0)
mode = RLIMIT_SHOW;
else if (resource == RLIMIT_ALL)
errs++;
else
mode = RLIMIT_SET;
if(mode == RLIMIT_UNSPEC)
mode = RLIMIT_SHOW;
if(resource == RLIMIT_UNSPEC)
resource = RLIMIT_FSIZE;
if(what == RLIMIT_UNSPEC)
what = (mode == RLIMIT_SHOW)?
RLIMIT_SOFT: (RLIMIT_SOFT|RLIMIT_HARD);
if(mode == RLIMIT_SHOW && what == (RLIMIT_SOFT|RLIMIT_HARD))
errs++;
if(errs)
error("Wrong option combination");
if(resource == RLIMIT_ALL)
for(i = 0; i < sizeof restab / sizeof(struct restab); i++)
print_resource(restab + i, what, 1);
else if(mode == RLIMIT_SHOW)
print_resource(find_resource(resource), what, 0);
else {
rp = find_resource(resource);
if(strcmp(argv[0], "unlimited") == 0)
val = RLIM_INFINITY;
else {
val = 0;
p = argv[0];
do {
if((i = *p - '0') < 0 || i > 9)
error("Illegal number: %s", argv[0]);
val = (10 * val) + (quad_t)i;
} while (*++p != '\0');
val *= (quad_t)rp->scale;
}
(void)getrlimit(resource, &rlim);
if(what & RLIMIT_HARD)
rlim.rlim_max = val;
if(what & RLIMIT_SOFT)
rlim.rlim_cur = val;
if(setrlimit(resource, &rlim) == -1) {
outfmt(&errout, "ulimit: bad limit: %s\n",
strerror(errno));
return 1;
}
}
return 0;
}
#else /* !BSD */
#error ulimit() not implemented
#endif /* BSD */
+18 -22
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: parser.c,v 1.6.4.1 1995/08/25 03:21:06 davidg Exp $
* $Id: parser.c,v 1.6.4.4 1996/06/05 02:36:22 jkh Exp $
*/
#ifndef lint
@@ -150,29 +150,12 @@ list(nlflag) {
for (;;) {
switch (readtoken()) {
case TBACKGND:
if (n1->type == NCMD || n1->type == NPIPE) {
n1->ncmd.backgnd = 1;
} else if (n1->type == NREDIR) {
n1->type = NBACKGND;
} else {
n3 = (union node *)stalloc(sizeof (struct nredir));
n3->type = NBACKGND;
n3->nredir.n = n1;
n3->nredir.redirect = NULL;
n1 = n3;
}
goto tsemi;
case TNL:
tokpushback++;
parseheredoc();
if (nlflag)
return n1;
/* fall through */
tsemi: case TSEMI:
if (readtoken() == TNL) {
parseheredoc();
if (nlflag)
return n1;
} else {
tokpushback++;
}
case TSEMI:
checkkwd = 2;
if (tokendlist[peektoken()])
return n1;
@@ -212,6 +195,19 @@ andor() {
} else if (t == TOR) {
t = NOR;
} else {
if (t == TBACKGND) {
if (n1->type == NCMD || n1->type == NPIPE) {
n1->ncmd.backgnd = 1;
} else if (n1->type == NREDIR) {
n1->type = NBACKGND;
} else {
n3 = (union node *)stalloc(sizeof (struct nredir));
n3->type = NBACKGND;
n3->nredir.n = n1;
n3->nredir.redirect = NULL;
n1 = n3;
}
}
tokpushback++;
return n1;
}
+6 -1
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: redir.c,v 1.2 1994/09/24 02:58:10 davidg Exp $
* $Id: redir.c,v 1.4 1995/10/21 00:47:31 joerg Exp $
*/
#ifndef lint
@@ -120,6 +120,9 @@ redirect(redir, flags)
}
for (n = redir ; n ; n = n->nfile.next) {
fd = n->nfile.fd;
if ((n->nfile.type == NTOFD || n->nfile.type == NFROMFD) &&
n->ndup.dupfd == fd)
continue; /* redirect from/to myself */
if ((flags & REDIR_PUSH) && sv->renamed[fd] == EMPTY) {
INTOFF;
if ((i = copyfd(fd, 10)) != EMPTY) {
@@ -341,5 +344,7 @@ copyfd(from, to) {
newfd = fcntl(from, F_DUPFD, to);
if (newfd < 0 && errno == EMFILE)
return EMPTY;
if (newfd < 0)
error("%d: %s", from, strerror(errno));
return newfd;
}
+53 -1
View File
@@ -33,7 +33,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)sh.1 8.4 (Berkeley) 4/18/94
.\" $Id: sh.1,v 1.2 1994/09/24 02:58:13 davidg Exp $
.\" $Id: sh.1,v 1.5 1995/10/21 00:47:32 joerg Exp $
.\"
.\"
.\"
.na
.TH SH 1
@@ -1277,6 +1279,56 @@ resets trapped (but not ignored) signals to the
default action. The trap command has no effect on
signals that were ignored on entry to the shell.
.TP
ulimit [ -HSacdflmnpst ] [ limit ]
Set or display resource limits (see getrlimit(2)).
If ``limit'' is specified, the named resource will be set;
otherwise the current resource value will be displayed.
.br
If ``-H'' is specified, the hard limits will be
set or displayed. While everybody is allowed to reduce a
hard limit, only the superuser can increase it. Option ``-S''
specifies the soft limits instead. When displaying limits,
only one of ``-S'' or ``-H'' can be given. The default is
to display the soft limits, and to set both, the hard and
the soft limits.
.br
Option ``-a'' requests to display all resources. The parameter
``limit'' is not acceptable in this mode.
.br
The remaining options specify which resource value is to be
displayed or modified. They are mutually exclusive.
.RS +.7i
.TP 2
-c coredumpsize
The maximal size of core dump files, in 512-byte blocks.
.TP 2
-d datasize
The maximal size of the data segment of a process, in kilobytes.
.TP 2
-f filesize
The maximal size of a file, in 512-byte blocks. This is the
default.
.TP 2
-l lockedmem
The maximal size of memory that can be locked by a process, in
kilobytes.
.TP 2
-m memoryuse
The maximal resident set size of a process, in kilobytes.
.TP 2
-n nofiles
The maximal number of descriptors that could be opened by a process.
.TP 2
-u userproc
The maximal number of simultaneous processes for this user ID.
.TP 2
-s stacksize
The maximal size of the stack segment, in kilobytes.
.TP 2
-t time
The maximal amount of CPU time to be used by each process, in seconds.
.RE
.TP
umask [ mask ]
Set the value of umask (see umask(2)) to the specified octal value.
If the argument is omitted, the
+4 -4
View File
@@ -33,7 +33,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)stty.1 8.4 (Berkeley) 4/18/94
.\" $Id$
.\" $Id: stty.1,v 1.2.6.2 1996/06/05 02:36:26 jkh Exp $
.\"
.Dd April 18, 1994
.Dt STTY 1
@@ -160,10 +160,10 @@ Signal (do not signal)
on
break.
.It Cm ignpar Pq Fl ignpar
Ignore (do not ignore) parity
Ignore (do not ignore) characters with parity
errors.
.It Cm parmrk Pq Fl parmrk
Mark (do not mark) parity errors.
Mark (do not mark) characters with parity errors.
.It Cm inpck Pq Fl inpck
Enable (disable) input parity
checking.
@@ -235,7 +235,7 @@ output modes).
Map (do not map)
.Dv NL
to
.DV CR-NL
.Dv CR-NL
on output.
.It Cm oxtabs Pq Fl oxtabs
Expand (do not expand) tabs to spaces on output.
+1 -1
View File
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)sync.8 8.1 (Berkeley) 5/31/93
.\" $Id$
.\" $Id: sync.8,v 1.2 1994/09/24 02:59:08 davidg Exp $
.\"
.Dd May 31, 1993
.Dt SYNC 8
+4 -4
View File
@@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: test.c,v 1.10 1995/03/19 13:29:28 joerg Exp $
* $Id: test.c,v 1.11.4.1 1996/02/20 09:48:53 jkh Exp $
*/
#ifndef lint
@@ -388,7 +388,7 @@ permission: if (fs->stat.st_uid == geteuid())
goto filetype;
case ISSYMLINK:
i = S_IFLNK;
(void)lstat(sp->u.string, &fs->stat);
fs->rcode = lstat(sp->u.string, &fs->stat);
goto filetype;
case ISFIFO:
i = S_IFIFO;
@@ -578,12 +578,12 @@ static void
syntax()
{
err(2, "syntax error");
errx(2, "syntax error");
}
static void
overflow()
{
err(2, "expression is too complex");
errx(2, "expression is too complex");
}
-105
View File
@@ -1,105 +0,0 @@
The "Artistic License"
Preamble
The intent of this document is to state the conditions under which a
Package may be copied, such that the Copyright Holder maintains some
semblance of artistic control over the development of the package,
while giving the users of the package the right to use and distribute
the Package in a more-or-less customary fashion, plus the right to make
reasonable modifications.
Definitions:
"Package" refers to the collection of files distributed by the
Copyright Holder, and derivatives of that collection of files
created through textual modification.
"Standard Version" refers to such a Package if it has not been
modified, or has been modified in accordance with the wishes
of the Copyright Holder as specified below.
"Copyright Holder" is whoever is named in the copyright or
copyrights for the package.
"You" is you, if you're thinking about copying or distributing
this Package.
"Reasonable copying fee" is whatever you can justify on the
basis of media cost, duplication charges, time of people involved,
and so on. (You will not be required to justify it to the
Copyright Holder, but only to the computing community at large
as a market that must bear the fee.)
"Freely Available" means that no fee is charged for the item
itself, though there may be fees involved in handling the item.
It also means that recipients of the item may redistribute it
under the same conditions they received it.
1. You may make and give away verbatim copies of the source form of the
Standard Version of this Package without restriction, provided that you
duplicate all of the original copyright notices and associated disclaimers.
2. You may apply bug fixes, portability fixes and other modifications
derived from the Public Domain or from the Copyright Holder. A Package
modified in such a way shall still be considered the Standard Version.
3. You may otherwise modify your copy of this Package in any way, provided
that you insert a prominent notice in each changed file stating how and
when you changed that file, and provided that you do at least ONE of the
following:
a) place your modifications in the Public Domain or otherwise make them
Freely Available, such as by posting said modifications to Usenet or
an equivalent medium, or placing the modifications on a major archive
site such as uunet.uu.net, or by allowing the Copyright Holder to include
your modifications in the Standard Version of the Package.
b) use the modified Package only within your corporation or organization.
c) rename any non-standard executables so the names do not conflict
with standard executables, which must also be provided, and provide
a separate manual page for each non-standard executable that clearly
documents how it differs from the Standard Version.
d) make other distribution arrangements with the Copyright Holder.
4. You may distribute the programs of this Package in object code or
executable form, provided that you do at least ONE of the following:
a) distribute a Standard Version of the executables and library files,
together with instructions (in the manual page or equivalent) on where
to get the Standard Version.
b) accompany the distribution with the machine-readable source of
the Package with your modifications.
c) give non-standard executables non-standard names, and clearly
document the differences in manual pages (or equivalent), together
with instructions on where to get the Standard Version.
d) make other distribution arrangements with the Copyright Holder.
5. You may charge a reasonable copying fee for any distribution of this
Package. You may charge any fee you choose for support of this
Package. You may not charge a fee for this Package itself. However,
you may distribute this Package in aggregate with other (possibly
commercial) programs as part of a larger (possibly commercial) software
distribution provided that you do not advertise this Package as a
product of your own.
6. Any programs linked with this library do not automatically fall
under the copyright of this Package, but belong to whomever generated
them, and may be sold commercially, and may be aggregated with this
Package.
7. The name of the Copyright Holder may not be used to endorse or promote
products derived from this software without specific prior written permission.
8. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The End
+2 -2
View File
@@ -1,7 +1,7 @@
# From: @(#)Makefile 5.1 (Berkeley) 6/25/90
# $Id$
SUBDIR= des include lib libexec usr.bin usr.sbin
SUBDIR= include lib libexec usr.bin usr.sbin man
SDIR= ${.CURDIR}/..
@@ -28,7 +28,7 @@ kprog:
bootstrap:
( cd include; ${MAKE} ${MFLAGS} install )
( cd des; ${MAKE} ${MFLAGS} depend all install )
( cd lib; ${MAKE} ${MFLAGS} depend all install )
${MAKE} ${MFLAGS} cleandir
${MAKE} ${MFLAGS} obj
${MAKE} ${MFLAGS} depend all install kprog
+5 -7
View File
@@ -1,14 +1,12 @@
# From: @(#)Makefile.inc 5.1 (Berkeley) 6/25/90
# $Id: Makefile.inc,v 1.8 1995/09/14 18:16:08 gibbs Exp $
# $Id$
DISTRIBUTION= krb
INCLUDEDIR= ${.CURDIR}/../../include
.if exists(${.CURDIR}/../../des/obj)
DESOBJDIR= ${.CURDIR}/../../des/obj
.if exists(${.CURDIR}/../../../secure/lib/libdes/obj)
DESOBJDIR= ${.CURDIR}/../../../secure/lib/libdes/obj
.else
DESOBJDIR= ${.CURDIR}/../../des
DESOBJDIR= ${.CURDIR}/../../../secure/lib/libdes
.endif
.if exists(${.CURDIR}/../../lib/libkrb/obj)
@@ -41,7 +39,7 @@ RKINITOBJDIR= ${.CURDIR}/../../lib/librkinit/obj
RKINITOBJDIR= ${.CURDIR}/../../lib/librkinit
.endif
CFLAGS+= -I${INCLUDEDIR} -Wall
CFLAGS+= -I${.CURDIR}/../../../secure/lib/libdes -I${.CURDIR}/../../include -Wall
COMPILE_ET= compile_et
+52
View File
@@ -0,0 +1,52 @@
IMPORTANT!
This distribution includes a patch (already applied), that updates
Kerberos' key generation. The gist of the patch is to replace calls
to des_random_key() with calls to des_new_random_key().
The primary difference is that des_random_key() uses a seeding
technique which is predictable and therefore vulnerable.
des_new_random_key() uses a feedback mechanism based on the Data
Encryption Standard (DES) and is seeded with a secret (and therefore
unknown to an attacker) value. This value is the database master
key, which is a convenient secret value.
This patch uses the new_rnd_key.c key module (which contains the
definition and code for des_new_random_key()). It has been part of
the standard Version 4 distribution since 1992 (and was recreated
for FreeBSD in 1995). This is used in the MIT admin server (the
primary error at MIT was not upgrading all of Kerberos to use this
newer generator. This patch finishes the job).
In addition to the patch for the Kerberos distribution this
distribution also contains a program for changing critical system keys
(namely the "krbtgt" and "changepw.kerberos" keys). When you
originally built your Kerberos database these keys were chosen at
random, using the vulnerable version of the kerberos random number
generator. Therefore it is possible for an attacker to mount an attack
to guess these values. If an attacker can determine the key for the
"krbtgt" ticket, they can construct tickets claiming to be any
kerberos principal. Similarly if an attacker can obtain the
"changepw.kerberos" key, they can change anyone's password.
The new "fix_kdb_keys(8)" program, which you run on the KDC
server, will change these critical keys to new values using the
newer random number generator. IMPORTANT: When you run fix_kdb_keys,
all outstanding ticket granting tickets will immediately become
invalid. This will be disruptive to your user community. We recommend
that you either do this late at night or early in the morning before
most users have logged in. Alternatively pre-announce a definitive
time when you will run the program and inform your users that they
will have to get new tickets at that time (using either "kinit" or
simply by logging out and then in again).
NOTE: The only client program modified is "ksrvutil" which is used
to generate new server keys. All other client/server programs are
unaffected. End users do *not* need to obtain new versions of
programs that use Kerberos. This is because most random number
generation in the Kerberos system is done on the KDC system.
After getting these sources, type "make world" at the toplevel of
your source tree. This will, among other things, build the fix_kdb_keys
program. This is not necessary if you have already got prebuilt
binaries with this distribution.
-56
View File
@@ -1,56 +0,0 @@
libdes, Version 3.00 93/10/07
Copyright (c) 1993, Eric Young
All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of either:
a) the GNU General Public License as published by the Free
Software Foundation; either version 1, or (at your option) any
later version, or
b) the "Artistic License" which comes with this Kit.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either
the GNU General Public License or the Artistic License for more details.
You should have received a copy of the Artistic License with this
Kit, in the file named "Artistic". If not, I'll be glad to provide one.
You should also have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
---
This kit builds a DES encryption library and a DES encryption program.
It suports ecb, cbc, ofb, cfb, triple ecb, triple cbc and MIT's pcbc
encryption modes and also has a fast implementation of crypt(3).
It contains support routines to read keys from a terminal,
generate a random key, generate a key from an arbitary length string,
read/write encrypted data from/to a file descriptor.
The implementation was written so as to conform with the manual entry
for the des_crypt(3) library routines from MIT's project Athena.
destest should be run after compilation to test the des routines.
rpw should be run after compilation to test the read password routines.
The des program is a replacement for the sun des command. I believe it
conforms to the sun version.
The Imakefile is setup for use in the kerberos distribution.
These routines are best compiled with gcc or any other good
optimising compiler.
Just turn you optimiser up to the highest settings and run destest
after the build to make sure everything works.
I believe these routines are close to the fastest and most portable DES
routines that use small lookup tables (4.5k) that are publicly available.
The fcrypt routine is faster than ufc's fcrypt (when compiling with
gcc2 -O2) on the sparc 2 (1410 vs 1270) but is not so good on other machines
(on a sun3/260 168 vs 336).
Eric Young ([email protected])
-60
View File
@@ -1,60 +0,0 @@
/* 3cbc_enc.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: 3cbc_enc.c,v 1.1.1.1 1994/09/30 14:49:50 csgr Exp $
*/
#include "des_locl.h"
void
xp(a)
unsigned char *a;
{ int i; for(i=0; i<8; i++) printf("%02X",a[i]);printf("\n");}
int des_3cbc_encrypt(input,output,length,ks1,ks2,iv1,iv2,encrypt)
des_cblock *input;
des_cblock *output;
long length;
des_key_schedule ks1,ks2;
des_cblock *iv1,*iv2;
int encrypt;
{
int off=length/8-1;
des_cblock niv1,niv2;
printf("3cbc\n");
xp(iv1);
xp(iv1);
xp(iv2);
xp(input);
if (encrypt == DES_ENCRYPT)
{
des_cbc_encrypt(input,output,length,ks1,iv1,encrypt);
if (length >= sizeof(des_cblock))
bcopy(output[off],niv1,sizeof(des_cblock));
des_cbc_encrypt(output,output,length,ks2,iv1,!encrypt);
des_cbc_encrypt(output,output,length,ks1,iv2, encrypt);
if (length >= sizeof(des_cblock))
bcopy(output[off],niv2,sizeof(des_cblock));
bcopy(niv1,*iv1,sizeof(des_cblock));
}
else
{
if (length >= sizeof(des_cblock))
bcopy(input[off],niv1,sizeof(des_cblock));
des_cbc_encrypt(input,output,length,ks1,iv1,encrypt);
des_cbc_encrypt(output,output,length,ks2,iv2,!encrypt);
if (length >= sizeof(des_cblock))
bcopy(output[off],niv2,sizeof(des_cblock));
des_cbc_encrypt(output,output,length,ks1,iv2, encrypt);
}
bcopy(niv1,iv1,sizeof(des_cblock));
bcopy(niv2,iv2,sizeof(des_cblock));
xp(iv1);
xp(iv1);
xp(iv2);
xp(output);
return(0);
}
-35
View File
@@ -1,35 +0,0 @@
/* 3ecb_enc.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: 3ecb_enc.c,v 1.1.1.1 1994/09/30 14:49:50 csgr Exp $
*/
#include "des_locl.h"
int des_3ecb_encrypt(input,output,ks1,ks2,encrypt)
des_cblock *input;
des_cblock *output;
des_key_schedule ks1,ks2;
int encrypt;
{
register unsigned long l0,l1;
register unsigned char *in,*out;
unsigned long ll[2];
in=(unsigned char *)input;
out=(unsigned char *)output;
c2l(in,l0);
c2l(in,l1);
ll[0]=l0;
ll[1]=l1;
des_encrypt(ll,ll,ks1,encrypt);
des_encrypt(ll,ll,ks2,!encrypt);
des_encrypt(ll,ll,ks1,encrypt);
l0=ll[0];
l1=ll[1];
l2c(l0,out);
l2c(l1,out);
return(0);
}
-27
View File
@@ -1,27 +0,0 @@
# @(#)Makefile 5.4 (Berkeley) 5/7/91
# $Id: Makefile,v 1.4 1995/09/14 18:16:11 gibbs Exp $
LIB= des
SRCS= cbc_cksm.c cbc_enc.c ecb_enc.c enc_read.c enc_writ.c pcbc_enc.c \
qud_cksm.c rand_key.c read_pwd.c set_key.c str2key.c \
cfb_enc.c 3ecb_enc.c ofb_enc.c 3cbc_enc.c new_rnd_key.c
#MAN1= des.1
#MAN3= des.3
#LINKS= crypt
CFLAGS+= -DDES_ENCRYPT -DKRBDES_ENCRYPT
# Kerberos 4?
#CFLAGS+=-DKRB4
#SRCS+= kerberos.c
# Kerberos 5?
#CFLAGS+= -DKRB5
#SRCS+= kerberos5.c
CFLAGS+= -I${.CURDIR}/include -I${.CURDIR}/../include -DAUTHENTICATE
SHLIB_MAJOR?= 2
SHLIB_MINOR?= 0
.include "/usr/src/lib/Makefile.inc"
.include <bsd.lib.mk>
-55
View File
@@ -1,55 +0,0 @@
/* cbc_cksm.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: cbc_cksm.c,v 1.1.1.1 1994/09/30 14:49:50 csgr Exp $
*/
#include "des_locl.h"
unsigned long des_cbc_cksum(input,output,length,schedule,ivec)
des_cblock *input;
des_cblock *output;
long length;
des_key_schedule schedule;
des_cblock *ivec;
{
register unsigned long tout0,tout1,tin0,tin1;
register long l=length;
unsigned long tin[2],tout[2];
unsigned char *in,*out,*iv;
in=(unsigned char *)input;
out=(unsigned char *)output;
iv=(unsigned char *)ivec;
c2l(iv,tout0);
c2l(iv,tout1);
for (; l>0; l-=8)
{
if (l >= 8)
{
c2l(in,tin0);
c2l(in,tin1);
}
else
c2ln(in,tin0,tin1,l);
tin0^=tout0;
tin1^=tout1;
tin[0]=tin0;
tin[1]=tin1;
des_encrypt((unsigned long *)tin,(unsigned long *)tout,
schedule,DES_ENCRYPT);
/* fix 15/10/91 eay - thanks to [email protected] */
tout0=tout[0];
tout1=tout[1];
}
if (out != NULL)
{
l2c(tout0,out);
l2c(tout1,out);
}
tout0=tin0=tin1=tin[0]=tin[1]=tout[0]=tout[1]=0;
return(tout1);
}
-83
View File
@@ -1,83 +0,0 @@
/* cbc_enc.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: cbc_enc.c,v 1.2 1994/07/19 19:21:47 g89r4222 Exp $
*/
#include "des_locl.h"
int des_cbc_encrypt(input,output,length,schedule,ivec,encrypt)
des_cblock *input;
des_cblock *output;
long length;
des_key_schedule schedule;
des_cblock *ivec;
int encrypt;
{
register unsigned long tin0,tin1;
register unsigned long tout0,tout1,xor0,xor1;
register unsigned char *in,*out;
register long l=length;
unsigned long tout[2],tin[2];
unsigned char *iv;
in=(unsigned char *)input;
out=(unsigned char *)output;
iv=(unsigned char *)ivec;
if (encrypt)
{
c2l(iv,tout0);
c2l(iv,tout1);
for (; l>0; l-=8)
{
if (l >= 8)
{
c2l(in,tin0);
c2l(in,tin1);
}
else
c2ln(in,tin0,tin1,l);
tin0^=tout0;
tin1^=tout1;
tin[0]=tin0;
tin[1]=tin1;
des_encrypt((unsigned long *)tin,(unsigned long *)tout,
schedule,encrypt);
tout0=tout[0];
tout1=tout[1];
l2c(tout0,out);
l2c(tout1,out);
}
}
else
{
c2l(iv,xor0);
c2l(iv,xor1);
for (; l>0; l-=8)
{
c2l(in,tin0);
c2l(in,tin1);
tin[0]=tin0;
tin[1]=tin1;
des_encrypt((unsigned long *)tin,(unsigned long *)tout,
schedule,encrypt);
tout0=tout[0]^xor0;
tout1=tout[1]^xor1;
if (l >= 8)
{
l2c(tout0,out);
l2c(tout1,out);
}
else
l2cn(tout0,tout1,out,l);
xor0=tin0;
xor1=tin1;
}
}
tin0=tin1=tout0=tout1=xor0=xor1=0;
tin[0]=tin[1]=tout[0]=tout[1]=0;
return(0);
}
-110
View File
@@ -1,110 +0,0 @@
/* cfb_enc.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: cfb_enc.c,v 1.2 1994/07/19 19:21:48 g89r4222 Exp $
*/
#include "des_locl.h"
/* The input and output are loaded in multiples of 8 bits.
* What this means is that if you hame numbits=12 and length=2
* the first 12 bits will be retrieved from the first byte and half
* the second. The second 12 bits will come from the 3rd and half the 4th
* byte.
*/
int des_cfb_encrypt(in,out,numbits,length,schedule,ivec,encrypt)
unsigned char *in,*out;
int numbits;
long length;
des_key_schedule schedule;
des_cblock *ivec;
int encrypt;
{
register unsigned long d0,d1,v0,v1,n=(numbits+7)/8;
register unsigned long mask0,mask1;
register long l=length;
register int num=numbits;
unsigned long ti[2],to[2];
unsigned char *iv;
if (num > 64) return(0);
if (num > 32)
{
mask0=0xffffffff;
if (num == 64)
mask1=mask0;
else
mask1=(1L<<(num-32))-1;
}
else
{
if (num == 32)
mask0=0xffffffff;
else
mask0=(1L<<num)-1;
mask1=0x00000000;
}
iv=(unsigned char *)ivec;
c2l(iv,v0);
c2l(iv,v1);
if (encrypt)
{
while (l-- > 0)
{
ti[0]=v0;
ti[1]=v1;
des_encrypt((unsigned long *)ti,(unsigned long *)to,
schedule,DES_ENCRYPT);
c2ln(in,d0,d1,n);
in+=n;
d0=(d0^to[0])&mask0;
d1=(d1^to[1])&mask1;
l2cn(d0,d1,out,n);
out+=n;
if (num > 32)
{
v0=((v1>>(num-32))|(d0<<(64-num)))&0xffffffff;
v1=((d0>>(num-32))|(d1<<(64-num)))&0xffffffff;
}
else
{
v0=((v0>>num)|(v1<<(32-num)))&0xffffffff;
v1=((v1>>num)|(d0<<(32-num)))&0xffffffff;
}
}
}
else
{
while (l-- > 0)
{
ti[0]=v0;
ti[1]=v1;
des_encrypt((unsigned long *)ti,(unsigned long *)to,
schedule,DES_ENCRYPT);
c2ln(in,d0,d1,n);
in+=n;
if (num > 32)
{
v0=((v1>>(num-32))|(d0<<(64-num)))&0xffffffff;
v1=((d0>>(num-32))|(d1<<(64-num)))&0xffffffff;
}
else
{
v0=((v0>>num)|(v1<<(32-num)))&0xffffffff;
v1=((v1>>num)|(d0<<(32-num)))&0xffffffff;
}
d0=(d0^to[0])&mask0;
d1=(d1^to[1])&mask1;
l2cn(d0,d1,out,n);
out+=n;
}
}
iv=(unsigned char *)ivec;
l2c(v0,iv);
l2c(v1,iv);
v0=v1=d0=d1=ti[0]=ti[1]=to[0]=to[1]=0;
return(0);
}
-105
View File
@@ -1,105 +0,0 @@
The "Artistic License"
Preamble
The intent of this document is to state the conditions under which a
Package may be copied, such that the Copyright Holder maintains some
semblance of artistic control over the development of the package,
while giving the users of the package the right to use and distribute
the Package in a more-or-less customary fashion, plus the right to make
reasonable modifications.
Definitions:
"Package" refers to the collection of files distributed by the
Copyright Holder, and derivatives of that collection of files
created through textual modification.
"Standard Version" refers to such a Package if it has not been
modified, or has been modified in accordance with the wishes
of the Copyright Holder as specified below.
"Copyright Holder" is whoever is named in the copyright or
copyrights for the package.
"You" is you, if you're thinking about copying or distributing
this Package.
"Reasonable copying fee" is whatever you can justify on the
basis of media cost, duplication charges, time of people involved,
and so on. (You will not be required to justify it to the
Copyright Holder, but only to the computing community at large
as a market that must bear the fee.)
"Freely Available" means that no fee is charged for the item
itself, though there may be fees involved in handling the item.
It also means that recipients of the item may redistribute it
under the same conditions they received it.
1. You may make and give away verbatim copies of the source form of the
Standard Version of this Package without restriction, provided that you
duplicate all of the original copyright notices and associated disclaimers.
2. You may apply bug fixes, portability fixes and other modifications
derived from the Public Domain or from the Copyright Holder. A Package
modified in such a way shall still be considered the Standard Version.
3. You may otherwise modify your copy of this Package in any way, provided
that you insert a prominent notice in each changed file stating how and
when you changed that file, and provided that you do at least ONE of the
following:
a) place your modifications in the Public Domain or otherwise make them
Freely Available, such as by posting said modifications to Usenet or
an equivalent medium, or placing the modifications on a major archive
site such as uunet.uu.net, or by allowing the Copyright Holder to include
your modifications in the Standard Version of the Package.
b) use the modified Package only within your corporation or organization.
c) rename any non-standard executables so the names do not conflict
with standard executables, which must also be provided, and provide
a separate manual page for each non-standard executable that clearly
documents how it differs from the Standard Version.
d) make other distribution arrangements with the Copyright Holder.
4. You may distribute the programs of this Package in object code or
executable form, provided that you do at least ONE of the following:
a) distribute a Standard Version of the executables and library files,
together with instructions (in the manual page or equivalent) on where
to get the Standard Version.
b) accompany the distribution with the machine-readable source of
the Package with your modifications.
c) give non-standard executables non-standard names, and clearly
document the differences in manual pages (or equivalent), together
with instructions on where to get the Standard Version.
d) make other distribution arrangements with the Copyright Holder.
5. You may charge a reasonable copying fee for any distribution of this
Package. You may charge any fee you choose for support of this
Package. You may not charge a fee for this Package itself. However,
you may distribute this Package in aggregate with other (possibly
commercial) programs as part of a larger (possibly commercial) software
distribution provided that you do not advertise this Package as a
product of your own.
6. Any programs linked with this library do not automatically fall
under the copyright of this Package, but belong to whomever generated
them, and may be sold commercially, and may be aggregated with this
Package.
7. The name of the Copyright Holder may not be used to endorse or promote
products derived from this software without specific prior written permission.
8. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The End
-16
View File
@@ -1,16 +0,0 @@
The main changes in this package since it was last posted to
comp.sources.misc are
The main changes are
- Major changes to the Copyright restrictions.
- Lots and lots of features added to the des(1) command, including
- Triple DES, both triple ECB and triple CBC options.
- uuencodeing/uudecoding built in to des(1).
- generate checksums.
- hex keys.
- Cleaned up the prototypes in des.h
- Filenames are now mostly <= 8 characters long.
- OFB, CFB, triple ECB and triple CBC modes of DES added to the library.
- Compiles and runs of all 64bit machines I could test the code on
(Cray, ETA10, DEC Alpha).
- It really does work with kerberos v 4 now :-).
-489
View File
@@ -1,489 +0,0 @@
Copyright (C) 1993 Eric Young
This is a DES implementation written by Eric Young ([email protected])
The implementation was written so as to conform with the manual entry
for the des_crypt(3) library routines from MIT's project Athena.
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it. You can use it for
your libraries, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library. If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software. To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs. This
license, the GNU Library General Public License, applies to certain
designated libraries. This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.
The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it. Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program. However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.
Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries. We
concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves. This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them. (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.) The hope is that this
will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, while the latter only
works together with the library.
Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.
GNU LIBRARY GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License"). Each licensee is
addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
c) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!
-123
View File
@@ -1,123 +0,0 @@
/* ecb_enc.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: ecb_enc.c,v 1.2 1994/07/19 19:21:53 g89r4222 Exp $
*/
#include "des_locl.h"
#include "spr.h"
int des_ecb_encrypt(input,output,ks,encrypt)
des_cblock *input;
des_cblock *output;
des_key_schedule ks;
int encrypt;
{
register unsigned long l0,l1;
register unsigned char *in,*out;
unsigned long ll[2];
in=(unsigned char *)input;
out=(unsigned char *)output;
c2l(in,l0);
c2l(in,l1);
ll[0]=l0;
ll[1]=l1;
des_encrypt(ll,ll,ks,encrypt);
l0=ll[0];
l1=ll[1];
l2c(l0,out);
l2c(l1,out);
l0=l1=ll[0]=ll[1]=0;
return(0);
}
int des_encrypt(input,output,ks,encrypt)
unsigned long *input;
unsigned long *output;
des_key_schedule ks;
int encrypt;
{
register unsigned long l,r,t,u;
#ifdef ALT_ECB
register unsigned char *des_SP=(unsigned char *)des_SPtrans;
#endif
#ifdef MSDOS
union fudge {
unsigned long l;
unsigned short s[2];
unsigned char c[4];
} U,T;
#endif
register int i;
register unsigned long *s;
l=input[0];
r=input[1];
/* do IP */
PERM_OP(r,l,t, 4,0x0f0f0f0f);
PERM_OP(l,r,t,16,0x0000ffff);
PERM_OP(r,l,t, 2,0x33333333);
PERM_OP(l,r,t, 8,0x00ff00ff);
PERM_OP(r,l,t, 1,0x55555555);
/* r and l are reversed - remember that :-) - fix
* it in the next step */
/* Things have been modified so that the initial rotate is
* done outside the loop. This required the
* des_SPtrans values in sp.h to be rotated 1 bit to the right.
* One perl script later and things have a 5% speed up on a sparc2.
* Thanks to Richard Outerbridge <71755.204@CompuServe.COM>
* for pointing this out. */
t=(r<<1)|(r>>31);
r=(l<<1)|(l>>31);
l=t;
/* clear the top bits on machines with 8byte longs */
l&=0xffffffff;
r&=0xffffffff;
s=(unsigned long *)ks;
/* I don't know if it is worth the effort of loop unrolling the
* inner loop */
if (encrypt)
{
for (i=0; i<32; i+=4)
{
D_ENCRYPT(l,r,i+0); /* 1 */
D_ENCRYPT(r,l,i+2); /* 2 */
}
}
else
{
for (i=30; i>0; i-=4)
{
D_ENCRYPT(l,r,i-0); /* 16 */
D_ENCRYPT(r,l,i-2); /* 15 */
}
}
l=(l>>1)|(l<<31);
r=(r>>1)|(r<<31);
/* clear the top bits on machines with 8byte longs */
l&=0xffffffff;
r&=0xffffffff;
/* swap l and r
* we will not do the swap so just remember they are
* reversed for the rest of the subroutine
* luckily FP fixes this problem :-) */
PERM_OP(r,l,t, 1,0x55555555);
PERM_OP(l,r,t, 8,0x00ff00ff);
PERM_OP(r,l,t, 2,0x33333333);
PERM_OP(l,r,t,16,0x0000ffff);
PERM_OP(r,l,t, 4,0x0f0f0f0f);
output[0]=l;
output[1]=r;
l=r=t=u=0;
return(0);
}
-150
View File
@@ -1,150 +0,0 @@
/* enc_read.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: enc_read.c,v 1.2 1995/05/30 06:40:11 rgrimes Exp $
*/
#include <sys/types.h>
#include <sys/uio.h>
#include <unistd.h>
#include <errno.h>
#include "des_locl.h"
/* This has some uglies in it but it works - even over sockets. */
extern int errno;
int des_rw_mode=DES_PCBC_MODE;
int des_enc_read(fd,buf,len,sched,iv)
int fd;
char *buf;
int len;
des_key_schedule sched;
des_cblock *iv;
{
/* data to be unencrypted */
int net_num=0;
unsigned char net[BSIZE];
/* extra unencrypted data
* for when a block of 100 comes in but is des_read one byte at
* a time. */
static char unnet[BSIZE];
static int unnet_start=0;
static int unnet_left=0;
int i;
long num=0,rnum;
unsigned char *p;
/* left over data from last decrypt */
if (unnet_left != 0)
{
if (unnet_left < len)
{
/* we still still need more data but will return
* with the number of bytes we have - should always
* check the return value */
bcopy(&(unnet[unnet_start]),buf,unnet_left);
/* eay 26/08/92 I had the next 2 lines
* reversed :-( */
i=unnet_left;
unnet_start=unnet_left=0;
}
else
{
bcopy(&(unnet[unnet_start]),buf,len);
unnet_start+=len;
unnet_left-=len;
i=len;
}
return(i);
}
/* We need to get more data. */
if (len > MAXWRITE) len=MAXWRITE;
/* first - get the length */
net_num=0;
while (net_num < HDRSIZE)
{
i=read(fd,&(net[net_num]),HDRSIZE-net_num);
if ((i == -1) && (errno == EINTR)) continue;
if (i <= 0) return(0);
net_num+=i;
}
/* we now have at net_num bytes in net */
p=net;
num=0;
n2l(p,num);
/* num should be rounded up to the next group of eight
* we make sure that we have read a multiple of 8 bytes from the net.
*/
if ((num > MAXWRITE) || (num < 0)) /* error */
return(-1);
rnum=(num < 8)?8:((num+7)/8*8);
net_num=0;
while (net_num < rnum)
{
i=read(fd,&(net[net_num]),rnum-net_num);
if ((i == -1) && (errno == EINTR)) continue;
if (i <= 0) return(0);
net_num+=i;
}
/* Check if there will be data left over. */
if (len < num)
{
if (des_rw_mode & DES_PCBC_MODE)
pcbc_encrypt((des_cblock *)net,(des_cblock *)unnet,
num,sched,iv,DES_DECRYPT);
else
cbc_encrypt((des_cblock *)net,(des_cblock *)unnet,
num,sched,iv,DES_DECRYPT);
bcopy(unnet,buf,len);
unnet_start=len;
unnet_left=num-len;
/* The following line is done because we return num
* as the number of bytes read. */
num=len;
}
else
{
/* >output is a multiple of 8 byes, if len < rnum
* >we must be careful. The user must be aware that this
* >routine will write more bytes than he asked for.
* >The length of the buffer must be correct.
* FIXED - Should be ok now 18-9-90 - eay */
if (len < rnum)
{
char tmpbuf[BSIZE];
if (des_rw_mode & DES_PCBC_MODE)
pcbc_encrypt((des_cblock *)net,
(des_cblock *)tmpbuf,
num,sched,iv,DES_DECRYPT);
else
cbc_encrypt((des_cblock *)net,
(des_cblock *)tmpbuf,
num,sched,iv,DES_DECRYPT);
/* eay 26/08/92 fix a bug that returned more
* bytes than you asked for (returned len bytes :-( */
bcopy(tmpbuf,buf,num);
}
else
{
if (des_rw_mode & DES_PCBC_MODE)
pcbc_encrypt((des_cblock *)net,
(des_cblock *)buf,num,sched,iv,
DES_DECRYPT);
else
cbc_encrypt((des_cblock *)net,
(des_cblock *)buf,num,sched,iv,
DES_DECRYPT);
}
}
return(num);
}
-99
View File
@@ -1,99 +0,0 @@
/* enc_writ.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: enc_writ.c,v 1.2 1995/05/30 06:40:12 rgrimes Exp $
*/
#include <sys/types.h>
#include <sys/uio.h>
#include <unistd.h>
#include <stdlib.h>
#include <time.h>
#include <errno.h>
#include "des_locl.h"
int des_enc_write(fd,buf,len,sched,iv)
int fd;
char *buf;
int len;
des_key_schedule sched;
des_cblock *iv;
{
long rnum;
int i,j,k,outnum;
char outbuf[BSIZE+HDRSIZE];
char shortbuf[8];
char *p;
static int start=1;
/* If we are sending less than 8 bytes, the same char will look
* the same if we don't pad it out with random bytes */
if (start)
{
start=0;
srandom(time(NULL));
}
/* lets recurse if we want to send the data in small chunks */
if (len > MAXWRITE)
{
j=0;
for (i=0; i<len; i+=k)
{
k=des_enc_write(fd,&(buf[i]),
((len-i) > MAXWRITE)?MAXWRITE:(len-i),sched,iv);
if (k < 0)
return(k);
else
j+=k;
}
return(j);
}
/* write length first */
p=outbuf;
l2n(len,p);
/* pad short strings */
if (len < 8)
{
p=shortbuf;
bcopy(buf,shortbuf,len);
for (i=len; i<8; i++)
shortbuf[i]=random();
rnum=8;
}
else
{
p=buf;
rnum=((len+7)/8*8); /* round up to nearest eight */
}
if (des_rw_mode & DES_PCBC_MODE)
pcbc_encrypt((des_cblock *)p,(des_cblock *)&(outbuf[HDRSIZE]),
(long)((len<8)?8:len),sched,iv,DES_ENCRYPT);
else
cbc_encrypt((des_cblock *)p,(des_cblock *)&(outbuf[HDRSIZE]),
(long)((len<8)?8:len),sched,iv,DES_ENCRYPT);
/* output */
outnum=rnum+HDRSIZE;
for (j=0; j<outnum; j+=i)
{
/* eay 26/08/92 I was not doing writing from where we
* got upto. */
i=write(fd,&(outbuf[j]),(int)(outnum-j));
if (i == -1)
{
if (errno == EINTR)
i=0;
else /* This is really a bad error - very bad
* It will stuff-up both ends. */
return(-1);
}
}
return(len);
}
-581
View File
@@ -1,581 +0,0 @@
/* fcrypt.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: fcrypt.c,v 1.1.1.1 1994/09/30 14:49:51 csgr Exp $
*/
#include <stdio.h>
/* Eric Young.
* This version of crypt has been developed from my MIT compatable
* DES library.
* The library is available at pub/DES at ftp.psy.uq.oz.au
* eay@psych.psy.uq.oz.au
*/
typedef unsigned char des_cblock[8];
typedef struct des_ks_struct
{
union {
des_cblock _;
/* make sure things are correct size on machines with
* 8 byte longs */
unsigned long pad[2];
} ks;
#define _ ks._
} des_key_schedule[16];
#define DES_KEY_SZ (sizeof(des_cblock))
#define DES_ENCRYPT 1
#define DES_DECRYPT 0
#define ITERATIONS 16
#define HALF_ITERATIONS 8
#define c2l(c,l) (l =((unsigned long)(*((c)++))) , \
l|=((unsigned long)(*((c)++)))<< 8, \
l|=((unsigned long)(*((c)++)))<<16, \
l|=((unsigned long)(*((c)++)))<<24)
#define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
*((c)++)=(unsigned char)(((l)>> 8)&0xff), \
*((c)++)=(unsigned char)(((l)>>16)&0xff), \
*((c)++)=(unsigned char)(((l)>>24)&0xff))
static unsigned long SPtrans[8][64]={
/* nibble 0 */
0x00820200, 0x00020000, 0x80800000, 0x80820200,
0x00800000, 0x80020200, 0x80020000, 0x80800000,
0x80020200, 0x00820200, 0x00820000, 0x80000200,
0x80800200, 0x00800000, 0x00000000, 0x80020000,
0x00020000, 0x80000000, 0x00800200, 0x00020200,
0x80820200, 0x00820000, 0x80000200, 0x00800200,
0x80000000, 0x00000200, 0x00020200, 0x80820000,
0x00000200, 0x80800200, 0x80820000, 0x00000000,
0x00000000, 0x80820200, 0x00800200, 0x80020000,
0x00820200, 0x00020000, 0x80000200, 0x00800200,
0x80820000, 0x00000200, 0x00020200, 0x80800000,
0x80020200, 0x80000000, 0x80800000, 0x00820000,
0x80820200, 0x00020200, 0x00820000, 0x80800200,
0x00800000, 0x80000200, 0x80020000, 0x00000000,
0x00020000, 0x00800000, 0x80800200, 0x00820200,
0x80000000, 0x80820000, 0x00000200, 0x80020200,
/* nibble 1 */
0x10042004, 0x00000000, 0x00042000, 0x10040000,
0x10000004, 0x00002004, 0x10002000, 0x00042000,
0x00002000, 0x10040004, 0x00000004, 0x10002000,
0x00040004, 0x10042000, 0x10040000, 0x00000004,
0x00040000, 0x10002004, 0x10040004, 0x00002000,
0x00042004, 0x10000000, 0x00000000, 0x00040004,
0x10002004, 0x00042004, 0x10042000, 0x10000004,
0x10000000, 0x00040000, 0x00002004, 0x10042004,
0x00040004, 0x10042000, 0x10002000, 0x00042004,
0x10042004, 0x00040004, 0x10000004, 0x00000000,
0x10000000, 0x00002004, 0x00040000, 0x10040004,
0x00002000, 0x10000000, 0x00042004, 0x10002004,
0x10042000, 0x00002000, 0x00000000, 0x10000004,
0x00000004, 0x10042004, 0x00042000, 0x10040000,
0x10040004, 0x00040000, 0x00002004, 0x10002000,
0x10002004, 0x00000004, 0x10040000, 0x00042000,
/* nibble 2 */
0x41000000, 0x01010040, 0x00000040, 0x41000040,
0x40010000, 0x01000000, 0x41000040, 0x00010040,
0x01000040, 0x00010000, 0x01010000, 0x40000000,
0x41010040, 0x40000040, 0x40000000, 0x41010000,
0x00000000, 0x40010000, 0x01010040, 0x00000040,
0x40000040, 0x41010040, 0x00010000, 0x41000000,
0x41010000, 0x01000040, 0x40010040, 0x01010000,
0x00010040, 0x00000000, 0x01000000, 0x40010040,
0x01010040, 0x00000040, 0x40000000, 0x00010000,
0x40000040, 0x40010000, 0x01010000, 0x41000040,
0x00000000, 0x01010040, 0x00010040, 0x41010000,
0x40010000, 0x01000000, 0x41010040, 0x40000000,
0x40010040, 0x41000000, 0x01000000, 0x41010040,
0x00010000, 0x01000040, 0x41000040, 0x00010040,
0x01000040, 0x00000000, 0x41010000, 0x40000040,
0x41000000, 0x40010040, 0x00000040, 0x01010000,
/* nibble 3 */
0x00100402, 0x04000400, 0x00000002, 0x04100402,
0x00000000, 0x04100000, 0x04000402, 0x00100002,
0x04100400, 0x04000002, 0x04000000, 0x00000402,
0x04000002, 0x00100402, 0x00100000, 0x04000000,
0x04100002, 0x00100400, 0x00000400, 0x00000002,
0x00100400, 0x04000402, 0x04100000, 0x00000400,
0x00000402, 0x00000000, 0x00100002, 0x04100400,
0x04000400, 0x04100002, 0x04100402, 0x00100000,
0x04100002, 0x00000402, 0x00100000, 0x04000002,
0x00100400, 0x04000400, 0x00000002, 0x04100000,
0x04000402, 0x00000000, 0x00000400, 0x00100002,
0x00000000, 0x04100002, 0x04100400, 0x00000400,
0x04000000, 0x04100402, 0x00100402, 0x00100000,
0x04100402, 0x00000002, 0x04000400, 0x00100402,
0x00100002, 0x00100400, 0x04100000, 0x04000402,
0x00000402, 0x04000000, 0x04000002, 0x04100400,
/* nibble 4 */
0x02000000, 0x00004000, 0x00000100, 0x02004108,
0x02004008, 0x02000100, 0x00004108, 0x02004000,
0x00004000, 0x00000008, 0x02000008, 0x00004100,
0x02000108, 0x02004008, 0x02004100, 0x00000000,
0x00004100, 0x02000000, 0x00004008, 0x00000108,
0x02000100, 0x00004108, 0x00000000, 0x02000008,
0x00000008, 0x02000108, 0x02004108, 0x00004008,
0x02004000, 0x00000100, 0x00000108, 0x02004100,
0x02004100, 0x02000108, 0x00004008, 0x02004000,
0x00004000, 0x00000008, 0x02000008, 0x02000100,
0x02000000, 0x00004100, 0x02004108, 0x00000000,
0x00004108, 0x02000000, 0x00000100, 0x00004008,
0x02000108, 0x00000100, 0x00000000, 0x02004108,
0x02004008, 0x02004100, 0x00000108, 0x00004000,
0x00004100, 0x02004008, 0x02000100, 0x00000108,
0x00000008, 0x00004108, 0x02004000, 0x02000008,
/* nibble 5 */
0x20000010, 0x00080010, 0x00000000, 0x20080800,
0x00080010, 0x00000800, 0x20000810, 0x00080000,
0x00000810, 0x20080810, 0x00080800, 0x20000000,
0x20000800, 0x20000010, 0x20080000, 0x00080810,
0x00080000, 0x20000810, 0x20080010, 0x00000000,
0x00000800, 0x00000010, 0x20080800, 0x20080010,
0x20080810, 0x20080000, 0x20000000, 0x00000810,
0x00000010, 0x00080800, 0x00080810, 0x20000800,
0x00000810, 0x20000000, 0x20000800, 0x00080810,
0x20080800, 0x00080010, 0x00000000, 0x20000800,
0x20000000, 0x00000800, 0x20080010, 0x00080000,
0x00080010, 0x20080810, 0x00080800, 0x00000010,
0x20080810, 0x00080800, 0x00080000, 0x20000810,
0x20000010, 0x20080000, 0x00080810, 0x00000000,
0x00000800, 0x20000010, 0x20000810, 0x20080800,
0x20080000, 0x00000810, 0x00000010, 0x20080010,
/* nibble 6 */
0x00001000, 0x00000080, 0x00400080, 0x00400001,
0x00401081, 0x00001001, 0x00001080, 0x00000000,
0x00400000, 0x00400081, 0x00000081, 0x00401000,
0x00000001, 0x00401080, 0x00401000, 0x00000081,
0x00400081, 0x00001000, 0x00001001, 0x00401081,
0x00000000, 0x00400080, 0x00400001, 0x00001080,
0x00401001, 0x00001081, 0x00401080, 0x00000001,
0x00001081, 0x00401001, 0x00000080, 0x00400000,
0x00001081, 0x00401000, 0x00401001, 0x00000081,
0x00001000, 0x00000080, 0x00400000, 0x00401001,
0x00400081, 0x00001081, 0x00001080, 0x00000000,
0x00000080, 0x00400001, 0x00000001, 0x00400080,
0x00000000, 0x00400081, 0x00400080, 0x00001080,
0x00000081, 0x00001000, 0x00401081, 0x00400000,
0x00401080, 0x00000001, 0x00001001, 0x00401081,
0x00400001, 0x00401080, 0x00401000, 0x00001001,
/* nibble 7 */
0x08200020, 0x08208000, 0x00008020, 0x00000000,
0x08008000, 0x00200020, 0x08200000, 0x08208020,
0x00000020, 0x08000000, 0x00208000, 0x00008020,
0x00208020, 0x08008020, 0x08000020, 0x08200000,
0x00008000, 0x00208020, 0x00200020, 0x08008000,
0x08208020, 0x08000020, 0x00000000, 0x00208000,
0x08000000, 0x00200000, 0x08008020, 0x08200020,
0x00200000, 0x00008000, 0x08208000, 0x00000020,
0x00200000, 0x00008000, 0x08000020, 0x08208020,
0x00008020, 0x08000000, 0x00000000, 0x00208000,
0x08200020, 0x08008020, 0x08008000, 0x00200020,
0x08208000, 0x00000020, 0x00200020, 0x08008000,
0x08208020, 0x00200000, 0x08200000, 0x08000020,
0x00208000, 0x00008020, 0x08008020, 0x08200000,
0x00000020, 0x08208000, 0x00208020, 0x00000000,
0x08000000, 0x08200020, 0x00008000, 0x00208020};
static unsigned long skb[8][64]={
/* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
0x00000000,0x00000010,0x20000000,0x20000010,
0x00010000,0x00010010,0x20010000,0x20010010,
0x00000800,0x00000810,0x20000800,0x20000810,
0x00010800,0x00010810,0x20010800,0x20010810,
0x00000020,0x00000030,0x20000020,0x20000030,
0x00010020,0x00010030,0x20010020,0x20010030,
0x00000820,0x00000830,0x20000820,0x20000830,
0x00010820,0x00010830,0x20010820,0x20010830,
0x00080000,0x00080010,0x20080000,0x20080010,
0x00090000,0x00090010,0x20090000,0x20090010,
0x00080800,0x00080810,0x20080800,0x20080810,
0x00090800,0x00090810,0x20090800,0x20090810,
0x00080020,0x00080030,0x20080020,0x20080030,
0x00090020,0x00090030,0x20090020,0x20090030,
0x00080820,0x00080830,0x20080820,0x20080830,
0x00090820,0x00090830,0x20090820,0x20090830,
/* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 */
0x00000000,0x02000000,0x00002000,0x02002000,
0x00200000,0x02200000,0x00202000,0x02202000,
0x00000004,0x02000004,0x00002004,0x02002004,
0x00200004,0x02200004,0x00202004,0x02202004,
0x00000400,0x02000400,0x00002400,0x02002400,
0x00200400,0x02200400,0x00202400,0x02202400,
0x00000404,0x02000404,0x00002404,0x02002404,
0x00200404,0x02200404,0x00202404,0x02202404,
0x10000000,0x12000000,0x10002000,0x12002000,
0x10200000,0x12200000,0x10202000,0x12202000,
0x10000004,0x12000004,0x10002004,0x12002004,
0x10200004,0x12200004,0x10202004,0x12202004,
0x10000400,0x12000400,0x10002400,0x12002400,
0x10200400,0x12200400,0x10202400,0x12202400,
0x10000404,0x12000404,0x10002404,0x12002404,
0x10200404,0x12200404,0x10202404,0x12202404,
/* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 */
0x00000000,0x00000001,0x00040000,0x00040001,
0x01000000,0x01000001,0x01040000,0x01040001,
0x00000002,0x00000003,0x00040002,0x00040003,
0x01000002,0x01000003,0x01040002,0x01040003,
0x00000200,0x00000201,0x00040200,0x00040201,
0x01000200,0x01000201,0x01040200,0x01040201,
0x00000202,0x00000203,0x00040202,0x00040203,
0x01000202,0x01000203,0x01040202,0x01040203,
0x08000000,0x08000001,0x08040000,0x08040001,
0x09000000,0x09000001,0x09040000,0x09040001,
0x08000002,0x08000003,0x08040002,0x08040003,
0x09000002,0x09000003,0x09040002,0x09040003,
0x08000200,0x08000201,0x08040200,0x08040201,
0x09000200,0x09000201,0x09040200,0x09040201,
0x08000202,0x08000203,0x08040202,0x08040203,
0x09000202,0x09000203,0x09040202,0x09040203,
/* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 */
0x00000000,0x00100000,0x00000100,0x00100100,
0x00000008,0x00100008,0x00000108,0x00100108,
0x00001000,0x00101000,0x00001100,0x00101100,
0x00001008,0x00101008,0x00001108,0x00101108,
0x04000000,0x04100000,0x04000100,0x04100100,
0x04000008,0x04100008,0x04000108,0x04100108,
0x04001000,0x04101000,0x04001100,0x04101100,
0x04001008,0x04101008,0x04001108,0x04101108,
0x00020000,0x00120000,0x00020100,0x00120100,
0x00020008,0x00120008,0x00020108,0x00120108,
0x00021000,0x00121000,0x00021100,0x00121100,
0x00021008,0x00121008,0x00021108,0x00121108,
0x04020000,0x04120000,0x04020100,0x04120100,
0x04020008,0x04120008,0x04020108,0x04120108,
0x04021000,0x04121000,0x04021100,0x04121100,
0x04021008,0x04121008,0x04021108,0x04121108,
/* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
0x00000000,0x10000000,0x00010000,0x10010000,
0x00000004,0x10000004,0x00010004,0x10010004,
0x20000000,0x30000000,0x20010000,0x30010000,
0x20000004,0x30000004,0x20010004,0x30010004,
0x00100000,0x10100000,0x00110000,0x10110000,
0x00100004,0x10100004,0x00110004,0x10110004,
0x20100000,0x30100000,0x20110000,0x30110000,
0x20100004,0x30100004,0x20110004,0x30110004,
0x00001000,0x10001000,0x00011000,0x10011000,
0x00001004,0x10001004,0x00011004,0x10011004,
0x20001000,0x30001000,0x20011000,0x30011000,
0x20001004,0x30001004,0x20011004,0x30011004,
0x00101000,0x10101000,0x00111000,0x10111000,
0x00101004,0x10101004,0x00111004,0x10111004,
0x20101000,0x30101000,0x20111000,0x30111000,
0x20101004,0x30101004,0x20111004,0x30111004,
/* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 */
0x00000000,0x08000000,0x00000008,0x08000008,
0x00000400,0x08000400,0x00000408,0x08000408,
0x00020000,0x08020000,0x00020008,0x08020008,
0x00020400,0x08020400,0x00020408,0x08020408,
0x00000001,0x08000001,0x00000009,0x08000009,
0x00000401,0x08000401,0x00000409,0x08000409,
0x00020001,0x08020001,0x00020009,0x08020009,
0x00020401,0x08020401,0x00020409,0x08020409,
0x02000000,0x0A000000,0x02000008,0x0A000008,
0x02000400,0x0A000400,0x02000408,0x0A000408,
0x02020000,0x0A020000,0x02020008,0x0A020008,
0x02020400,0x0A020400,0x02020408,0x0A020408,
0x02000001,0x0A000001,0x02000009,0x0A000009,
0x02000401,0x0A000401,0x02000409,0x0A000409,
0x02020001,0x0A020001,0x02020009,0x0A020009,
0x02020401,0x0A020401,0x02020409,0x0A020409,
/* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 */
0x00000000,0x00000100,0x00080000,0x00080100,
0x01000000,0x01000100,0x01080000,0x01080100,
0x00000010,0x00000110,0x00080010,0x00080110,
0x01000010,0x01000110,0x01080010,0x01080110,
0x00200000,0x00200100,0x00280000,0x00280100,
0x01200000,0x01200100,0x01280000,0x01280100,
0x00200010,0x00200110,0x00280010,0x00280110,
0x01200010,0x01200110,0x01280010,0x01280110,
0x00000200,0x00000300,0x00080200,0x00080300,
0x01000200,0x01000300,0x01080200,0x01080300,
0x00000210,0x00000310,0x00080210,0x00080310,
0x01000210,0x01000310,0x01080210,0x01080310,
0x00200200,0x00200300,0x00280200,0x00280300,
0x01200200,0x01200300,0x01280200,0x01280300,
0x00200210,0x00200310,0x00280210,0x00280310,
0x01200210,0x01200310,0x01280210,0x01280310,
/* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 */
0x00000000,0x04000000,0x00040000,0x04040000,
0x00000002,0x04000002,0x00040002,0x04040002,
0x00002000,0x04002000,0x00042000,0x04042000,
0x00002002,0x04002002,0x00042002,0x04042002,
0x00000020,0x04000020,0x00040020,0x04040020,
0x00000022,0x04000022,0x00040022,0x04040022,
0x00002020,0x04002020,0x00042020,0x04042020,
0x00002022,0x04002022,0x00042022,0x04042022,
0x00000800,0x04000800,0x00040800,0x04040800,
0x00000802,0x04000802,0x00040802,0x04040802,
0x00002800,0x04002800,0x00042800,0x04042800,
0x00002802,0x04002802,0x00042802,0x04042802,
0x00000820,0x04000820,0x00040820,0x04040820,
0x00000822,0x04000822,0x00040822,0x04040822,
0x00002820,0x04002820,0x00042820,0x04042820,
0x00002822,0x04002822,0x00042822,0x04042822,
};
/* See ecb_encrypt.c for a pseudo description of these macros. */
#define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\
(b)^=(t),\
(a)^=((t)<<(n)))
#define HPERM_OP(a,t,n,m) ((t)=((((a)<<(16-(n)))^(a))&(m)),\
(a)=(a)^(t)^(t>>(16-(n))))\
static char shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0};
static int body();
static int des_set___key();
static int des_set___key(key,schedule)
des_cblock *key;
des_key_schedule schedule;
{
register unsigned long c,d,t,s;
register unsigned char *in;
register unsigned long *k;
register int i;
k=(unsigned long *)schedule;
in=(unsigned char *)key;
c2l(in,c);
c2l(in,d);
/* I now do it in 47 simple operations :-)
* Thanks to John Fletcher (john_fletcher@lccmail.ocf.llnl.gov)
* for the inspiration. :-) */
PERM_OP (d,c,t,4,0x0f0f0f0f);
HPERM_OP(c,t,-2,0xcccc0000);
HPERM_OP(d,t,-2,0xcccc0000);
PERM_OP (d,c,t,1,0x55555555);
PERM_OP (c,d,t,8,0x00ff00ff);
PERM_OP (d,c,t,1,0x55555555);
d= (((d&0x000000ff)<<16)| (d&0x0000ff00) |
((d&0x00ff0000)>>16)|((c&0xf0000000)>>4));
c&=0x0fffffff;
for (i=0; i<ITERATIONS; i++)
{
if (shifts2[i])
{ c=((c>>2)|(c<<26)); d=((d>>2)|(d<<26)); }
else
{ c=((c>>1)|(c<<27)); d=((d>>1)|(d<<27)); }
c&=0x0fffffff;
d&=0x0fffffff;
/* could be a few less shifts but I am to lazy at this
* point in time to investigate */
s= skb[0][ (c )&0x3f ]|
skb[1][((c>> 6)&0x03)|((c>> 7)&0x3c)]|
skb[2][((c>>13)&0x0f)|((c>>14)&0x30)]|
skb[3][((c>>20)&0x01)|((c>>21)&0x06) |
((c>>22)&0x38)];
t= skb[4][ (d )&0x3f ]|
skb[5][((d>> 7)&0x03)|((d>> 8)&0x3c)]|
skb[6][ (d>>15)&0x3f ]|
skb[7][((d>>21)&0x0f)|((d>>22)&0x30)];
/* table contained 0213 4657 */
*(k++)=((t<<16)|(s&0x0000ffff))&0xffffffff;
s= ((s>>16)|(t&0xffff0000));
s=(s<<4)|(s>>28);
*(k++)=s&0xffffffff;
}
return(0);
}
/******************************************************************
* modified stuff for crypt.
******************************************************************/
/* The changes to this macro may help or hinder, depending on the
* compiler and the achitecture. gcc2 always seems to do well :-).
* Inspired by Dana How <how@isl.stanford.edu>
* DO NOT use the alternative version on machines with 8 byte longs.
*/
#ifdef ALT_ECB
#define D_ENCRYPT(L,R,S) \
v=(R^(R>>16)); \
u=(v&E0); \
v=(v&E1); \
u=((u^(u<<16))^R^s[S ])<<2; \
t=(v^(v<<16))^R^s[S+1]; \
t=(t>>2)|(t<<30); \
L^= \
*(unsigned long *)(des_SP+0x0100+((t )&0xfc))+ \
*(unsigned long *)(des_SP+0x0300+((t>> 8)&0xfc))+ \
*(unsigned long *)(des_SP+0x0500+((t>>16)&0xfc))+ \
*(unsigned long *)(des_SP+0x0700+((t>>24)&0xfc))+ \
*(unsigned long *)(des_SP+ ((u )&0xfc))+ \
*(unsigned long *)(des_SP+0x0200+((u>> 8)&0xfc))+ \
*(unsigned long *)(des_SP+0x0400+((u>>16)&0xfc))+ \
*(unsigned long *)(des_SP+0x0600+((u>>24)&0xfc));
#else /* original version */
#define D_ENCRYPT(L,R,S) \
v=(R^(R>>16)); \
u=(v&E0); \
v=(v&E1); \
u=(u^(u<<16))^R^s[S ]; \
t=(v^(v<<16))^R^s[S+1]; \
t=(t>>4)|(t<<28); \
L^= SPtrans[1][(t )&0x3f]| \
SPtrans[3][(t>> 8)&0x3f]| \
SPtrans[5][(t>>16)&0x3f]| \
SPtrans[7][(t>>24)&0x3f]| \
SPtrans[0][(u )&0x3f]| \
SPtrans[2][(u>> 8)&0x3f]| \
SPtrans[4][(u>>16)&0x3f]| \
SPtrans[6][(u>>24)&0x3f];
#endif
unsigned char con_salt[128]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
0x0A,0x0B,0x05,0x06,0x07,0x08,0x09,0x0A,
0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,
0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,
0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,
0x23,0x24,0x25,0x20,0x21,0x22,0x23,0x24,
0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,
0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,
0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,
0x3D,0x3E,0x3F,0x00,0x00,0x00,0x00,0x00,
};
unsigned char cov_2char[64]={
0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35,
0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,
0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,
0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54,
0x55,0x56,0x57,0x58,0x59,0x5A,0x61,0x62,
0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,
0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72,
0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A
};
char *crypt(buf,salt)
char *buf;
char *salt;
{
unsigned int i,j,x,y;
unsigned long Eswap0=0,Eswap1=0;
unsigned long out[2],ll;
des_cblock key;
des_key_schedule ks;
static unsigned char buff[20];
unsigned char bb[9];
unsigned char *b=bb;
unsigned char c,u;
/* eay 25/08/92
* If you call crypt("pwd","*") as often happens when you
* have * as the pwd field in /etc/passwd, the function
* returns *\0XXXXXXXXX
* The \0 makes the string look like * so the pwd "*" would
* crypt to "*". This was found when replacing the crypt in
* our shared libraries. People found that the disbled
* accounts effectivly had no passwd :-(. */
if (salt[0] == '\0') salt[0]='A';
if (salt[1] == '\0') salt[1]='A';
x=buff[0]=salt[0];
Eswap0=con_salt[x];
x=buff[1]=salt[1];
Eswap1=con_salt[x]<<4;
for (i=0; i<8; i++)
{
c= *(buf++);
if (!c) break;
key[i]=(c<<1);
}
for (; i<8; i++)
key[i]=0;
des_set___key((des_cblock *)(key),ks);
body(&out[0],&out[1],ks,Eswap0,Eswap1);
ll=out[0]; l2c(ll,b);
ll=out[1]; l2c(ll,b);
y=0;
u=0x80;
bb[8]=0;
for (i=2; i<13; i++)
{
c=0;
for (j=0; j<6; j++)
{
c<<=1;
if (bb[y] & u) c|=1;
u>>=1;
if (!u)
{
y++;
u=0x80;
}
}
buff[i]=cov_2char[c];
}
return((char *)buff);
}
static int body(out0,out1,ks,Eswap0,Eswap1)
unsigned long *out0,*out1;
des_key_schedule *ks;
unsigned long Eswap0,Eswap1;
{
register unsigned long l,r,t,u,v;
#ifdef ALT_ECB
register unsigned char *des_SP=(unsigned char *)SPtrans;
#endif
register unsigned long *s;
register int i,j;
register unsigned long E0,E1;
l=0;
r=0;
s=(unsigned long *)ks;
E0=Eswap0;
E1=Eswap1;
for (j=0; j<25; j++)
{
for (i=0; i<(ITERATIONS*2); i+=4)
{
D_ENCRYPT(l,r, i); /* 1 */
D_ENCRYPT(r,l, i+2); /* 2 */
}
t=l;
l=r;
r=t;
}
t=r;
r=(l>>1)|(l<<31);
l=(t>>1)|(t<<31);
/* clear the top bits on machines with 8byte longs */
l&=0xffffffff;
r&=0xffffffff;
PERM_OP(r,l,t, 1,0x55555555);
PERM_OP(l,r,t, 8,0x00ff00ff);
PERM_OP(r,l,t, 2,0x33333333);
PERM_OP(l,r,t,16,0x0000ffff);
PERM_OP(r,l,t, 4,0x0f0f0f0f);
*out0=l;
*out1=r;
return(0);
}
-186
View File
@@ -1,186 +0,0 @@
/* des_locl.h */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: des_locl.h,v 1.2 1994/07/19 19:22:18 g89r4222 Exp $
*/
#include <stdio.h>
#include "des.h"
#if defined(__STDC__) || defined(VMS) || defined(M_XENIX) || defined(MSDOS)
#include <string.h>
#define bcopy(b1,b2,len) memcpy(b2, b1, (size_t)(len))
#define bzero(b,len) memset(b, 0, (size_t)(len))
#define bcmp(b1,b2,len) memcmp(b1, b2, (size_t)(len))
#define index(s1,char) strchr(s1,char)
#endif
#ifdef MSDOS
#define getpid() 2
#define RAND
extern int errno;
#define PROTO
#endif
#ifdef __STDC__
#define PROTO
#endif
#ifdef RAND
#define random() rand()
#define srandom(s) srand(s)
#endif
#define ITERATIONS 16
#define HALF_ITERATIONS 8
/* used in des_read and des_write */
#define MAXWRITE (1024*16)
#define BSIZE (MAXWRITE+4)
#define c2l(c,l) (l =((unsigned long)(*((c)++))) , \
l|=((unsigned long)(*((c)++)))<< 8, \
l|=((unsigned long)(*((c)++)))<<16, \
l|=((unsigned long)(*((c)++)))<<24)
/* NOTE - c is not incremented as per c2l */
#define c2ln(c,l1,l2,n) { \
c+=n; \
l1=l2=0; \
switch (n) { \
case 8: l2|=((unsigned long)(*(--(c))))<<24; \
case 7: l2|=((unsigned long)(*(--(c))))<<16; \
case 6: l2|=((unsigned long)(*(--(c))))<< 8; \
case 5: l2|=((unsigned long)(*(--(c)))); \
case 4: l1|=((unsigned long)(*(--(c))))<<24; \
case 3: l1|=((unsigned long)(*(--(c))))<<16; \
case 2: l1|=((unsigned long)(*(--(c))))<< 8; \
case 1: l1|=((unsigned long)(*(--(c)))); \
} \
}
#define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \
*((c)++)=(unsigned char)(((l)>> 8)&0xff), \
*((c)++)=(unsigned char)(((l)>>16)&0xff), \
*((c)++)=(unsigned char)(((l)>>24)&0xff))
/* replacements for htonl and ntohl since I have no idea what to do
* when faced with machines with 8 byte longs. */
#define HDRSIZE 4
#define n2l(c,l) (l =((unsigned long)(*((c)++)))<<24, \
l|=((unsigned long)(*((c)++)))<<16, \
l|=((unsigned long)(*((c)++)))<< 8, \
l|=((unsigned long)(*((c)++))))
#define l2n(l,c) (*((c)++)=(unsigned char)(((l)>>24)&0xff), \
*((c)++)=(unsigned char)(((l)>>16)&0xff), \
*((c)++)=(unsigned char)(((l)>> 8)&0xff), \
*((c)++)=(unsigned char)(((l) )&0xff))
/* NOTE - c is not incremented as per l2c */
#define l2cn(l1,l2,c,n) { \
c+=n; \
switch (n) { \
case 8: *(--(c))=(unsigned char)(((l2)>>24)&0xff); \
case 7: *(--(c))=(unsigned char)(((l2)>>16)&0xff); \
case 6: *(--(c))=(unsigned char)(((l2)>> 8)&0xff); \
case 5: *(--(c))=(unsigned char)(((l2) )&0xff); \
case 4: *(--(c))=(unsigned char)(((l1)>>24)&0xff); \
case 3: *(--(c))=(unsigned char)(((l1)>>16)&0xff); \
case 2: *(--(c))=(unsigned char)(((l1)>> 8)&0xff); \
case 1: *(--(c))=(unsigned char)(((l1) )&0xff); \
} \
}
/* The changes to this macro may help or hinder, depending on the
* compiler and the achitecture. gcc2 always seems to do well :-).
* Inspired by Dana How <how@isl.stanford.edu>
* DO NOT use the alternative version on machines with 8 byte longs. */
#ifdef ALT_ECB
#define D_ENCRYPT(L,R,S) \
u=((R^s[S ])<<2); \
t= R^s[S+1]; \
t=((t>>2)+(t<<30)); \
L^= \
*(unsigned long *)(des_SP+0x0100+((t )&0xfc))+ \
*(unsigned long *)(des_SP+0x0300+((t>> 8)&0xfc))+ \
*(unsigned long *)(des_SP+0x0500+((t>>16)&0xfc))+ \
*(unsigned long *)(des_SP+0x0700+((t>>24)&0xfc))+ \
*(unsigned long *)(des_SP+ ((u )&0xfc))+ \
*(unsigned long *)(des_SP+0x0200+((u>> 8)&0xfc))+ \
*(unsigned long *)(des_SP+0x0400+((u>>16)&0xfc))+ \
*(unsigned long *)(des_SP+0x0600+((u>>24)&0xfc));
#else /* original version */
#ifdef MSDOS
#define D_ENCRYPT(L,R,S) \
U.l=R^s[S+1]; \
T.s[0]=((U.s[0]>>4)|(U.s[1]<<12))&0x3f3f; \
T.s[1]=((U.s[1]>>4)|(U.s[0]<<12))&0x3f3f; \
U.l=(R^s[S ])&0x3f3f3f3f; \
L^= des_SPtrans[1][(T.c[0])]| \
des_SPtrans[3][(T.c[1])]| \
des_SPtrans[5][(T.c[2])]| \
des_SPtrans[7][(T.c[3])]| \
des_SPtrans[0][(U.c[0])]| \
des_SPtrans[2][(U.c[1])]| \
des_SPtrans[4][(U.c[2])]| \
des_SPtrans[6][(U.c[3])];
#else
#define D_ENCRYPT(L,R,S) \
u=(R^s[S ]); \
t=R^s[S+1]; \
t=((t>>4)+(t<<28)); \
L^= des_SPtrans[1][(t )&0x3f]| \
des_SPtrans[3][(t>> 8)&0x3f]| \
des_SPtrans[5][(t>>16)&0x3f]| \
des_SPtrans[7][(t>>24)&0x3f]| \
des_SPtrans[0][(u )&0x3f]| \
des_SPtrans[2][(u>> 8)&0x3f]| \
des_SPtrans[4][(u>>16)&0x3f]| \
des_SPtrans[6][(u>>24)&0x3f];
#endif
#endif
/* IP and FP
* The problem is more of a geometric problem that random bit fiddling.
0 1 2 3 4 5 6 7 62 54 46 38 30 22 14 6
8 9 10 11 12 13 14 15 60 52 44 36 28 20 12 4
16 17 18 19 20 21 22 23 58 50 42 34 26 18 10 2
24 25 26 27 28 29 30 31 to 56 48 40 32 24 16 8 0
32 33 34 35 36 37 38 39 63 55 47 39 31 23 15 7
40 41 42 43 44 45 46 47 61 53 45 37 29 21 13 5
48 49 50 51 52 53 54 55 59 51 43 35 27 19 11 3
56 57 58 59 60 61 62 63 57 49 41 33 25 17 9 1
The output has been subject to swaps of the form
0 1 -> 3 1 but the odd and even bits have been put into
2 3 2 0
different words. The main trick is to remember that
t=((l>>size)^r)&(mask);
r^=t;
l^=(t<<size);
can be used to swap and move bits between words.
So l = 0 1 2 3 r = 16 17 18 19
4 5 6 7 20 21 22 23
8 9 10 11 24 25 26 27
12 13 14 15 28 29 30 31
becomes (for size == 2 and mask == 0x3333)
t = 2^16 3^17 -- -- l = 0 1 16 17 r = 2 3 18 19
6^20 7^21 -- -- 4 5 20 21 6 7 22 23
10^24 11^25 -- -- 8 9 24 25 10 11 24 25
14^28 15^29 -- -- 12 13 28 29 14 15 28 29
Thanks for hints from Richard Outerbridge - he told me IP&FP
could be done in 15 xor, 10 shifts and 5 ands.
When I finally started to think of the problem in 2D
I first got ~42 operations without xors. When I remembered
how to use xors :-) I got it to its final state.
*/
#define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\
(b)^=(t),\
(a)^=((t)<<(n)))
-24
View File
@@ -1,24 +0,0 @@
/* podd.h */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: podd.h,v 1.2 1994/07/19 19:22:20 g89r4222 Exp $
*/
static unsigned char odd_parity[256]={
1, 1, 2, 2, 4, 4, 7, 7, 8, 8, 11, 11, 13, 13, 14, 14,
16, 16, 19, 19, 21, 21, 22, 22, 25, 25, 26, 26, 28, 28, 31, 31,
32, 32, 35, 35, 37, 37, 38, 38, 41, 41, 42, 42, 44, 44, 47, 47,
49, 49, 50, 50, 52, 52, 55, 55, 56, 56, 59, 59, 61, 61, 62, 62,
64, 64, 67, 67, 69, 69, 70, 70, 73, 73, 74, 74, 76, 76, 79, 79,
81, 81, 82, 82, 84, 84, 87, 87, 88, 88, 91, 91, 93, 93, 94, 94,
97, 97, 98, 98,100,100,103,103,104,104,107,107,109,109,110,110,
112,112,115,115,117,117,118,118,121,121,122,122,124,124,127,127,
128,128,131,131,133,133,134,134,137,137,138,138,140,140,143,143,
145,145,146,146,148,148,151,151,152,152,155,155,157,157,158,158,
161,161,162,162,164,164,167,167,168,168,171,171,173,173,174,174,
176,176,179,179,181,181,182,182,185,185,186,186,188,188,191,191,
193,193,194,194,196,196,199,199,200,200,203,203,205,205,206,206,
208,208,211,211,213,213,214,214,217,217,218,218,220,220,223,223,
224,224,227,227,229,229,230,230,233,233,234,234,236,236,239,239,
241,241,242,242,244,244,247,247,248,248,251,251,253,253,254,254};
-145
View File
@@ -1,145 +0,0 @@
/* sk.h */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: sk.h,v 1.2 1994/07/19 19:22:22 g89r4222 Exp $
*/
static unsigned long des_skb[8][64]={
/* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
0x00000000,0x00000010,0x20000000,0x20000010,
0x00010000,0x00010010,0x20010000,0x20010010,
0x00000800,0x00000810,0x20000800,0x20000810,
0x00010800,0x00010810,0x20010800,0x20010810,
0x00000020,0x00000030,0x20000020,0x20000030,
0x00010020,0x00010030,0x20010020,0x20010030,
0x00000820,0x00000830,0x20000820,0x20000830,
0x00010820,0x00010830,0x20010820,0x20010830,
0x00080000,0x00080010,0x20080000,0x20080010,
0x00090000,0x00090010,0x20090000,0x20090010,
0x00080800,0x00080810,0x20080800,0x20080810,
0x00090800,0x00090810,0x20090800,0x20090810,
0x00080020,0x00080030,0x20080020,0x20080030,
0x00090020,0x00090030,0x20090020,0x20090030,
0x00080820,0x00080830,0x20080820,0x20080830,
0x00090820,0x00090830,0x20090820,0x20090830,
/* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 */
0x00000000,0x02000000,0x00002000,0x02002000,
0x00200000,0x02200000,0x00202000,0x02202000,
0x00000004,0x02000004,0x00002004,0x02002004,
0x00200004,0x02200004,0x00202004,0x02202004,
0x00000400,0x02000400,0x00002400,0x02002400,
0x00200400,0x02200400,0x00202400,0x02202400,
0x00000404,0x02000404,0x00002404,0x02002404,
0x00200404,0x02200404,0x00202404,0x02202404,
0x10000000,0x12000000,0x10002000,0x12002000,
0x10200000,0x12200000,0x10202000,0x12202000,
0x10000004,0x12000004,0x10002004,0x12002004,
0x10200004,0x12200004,0x10202004,0x12202004,
0x10000400,0x12000400,0x10002400,0x12002400,
0x10200400,0x12200400,0x10202400,0x12202400,
0x10000404,0x12000404,0x10002404,0x12002404,
0x10200404,0x12200404,0x10202404,0x12202404,
/* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 */
0x00000000,0x00000001,0x00040000,0x00040001,
0x01000000,0x01000001,0x01040000,0x01040001,
0x00000002,0x00000003,0x00040002,0x00040003,
0x01000002,0x01000003,0x01040002,0x01040003,
0x00000200,0x00000201,0x00040200,0x00040201,
0x01000200,0x01000201,0x01040200,0x01040201,
0x00000202,0x00000203,0x00040202,0x00040203,
0x01000202,0x01000203,0x01040202,0x01040203,
0x08000000,0x08000001,0x08040000,0x08040001,
0x09000000,0x09000001,0x09040000,0x09040001,
0x08000002,0x08000003,0x08040002,0x08040003,
0x09000002,0x09000003,0x09040002,0x09040003,
0x08000200,0x08000201,0x08040200,0x08040201,
0x09000200,0x09000201,0x09040200,0x09040201,
0x08000202,0x08000203,0x08040202,0x08040203,
0x09000202,0x09000203,0x09040202,0x09040203,
/* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 */
0x00000000,0x00100000,0x00000100,0x00100100,
0x00000008,0x00100008,0x00000108,0x00100108,
0x00001000,0x00101000,0x00001100,0x00101100,
0x00001008,0x00101008,0x00001108,0x00101108,
0x04000000,0x04100000,0x04000100,0x04100100,
0x04000008,0x04100008,0x04000108,0x04100108,
0x04001000,0x04101000,0x04001100,0x04101100,
0x04001008,0x04101008,0x04001108,0x04101108,
0x00020000,0x00120000,0x00020100,0x00120100,
0x00020008,0x00120008,0x00020108,0x00120108,
0x00021000,0x00121000,0x00021100,0x00121100,
0x00021008,0x00121008,0x00021108,0x00121108,
0x04020000,0x04120000,0x04020100,0x04120100,
0x04020008,0x04120008,0x04020108,0x04120108,
0x04021000,0x04121000,0x04021100,0x04121100,
0x04021008,0x04121008,0x04021108,0x04121108,
/* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
0x00000000,0x10000000,0x00010000,0x10010000,
0x00000004,0x10000004,0x00010004,0x10010004,
0x20000000,0x30000000,0x20010000,0x30010000,
0x20000004,0x30000004,0x20010004,0x30010004,
0x00100000,0x10100000,0x00110000,0x10110000,
0x00100004,0x10100004,0x00110004,0x10110004,
0x20100000,0x30100000,0x20110000,0x30110000,
0x20100004,0x30100004,0x20110004,0x30110004,
0x00001000,0x10001000,0x00011000,0x10011000,
0x00001004,0x10001004,0x00011004,0x10011004,
0x20001000,0x30001000,0x20011000,0x30011000,
0x20001004,0x30001004,0x20011004,0x30011004,
0x00101000,0x10101000,0x00111000,0x10111000,
0x00101004,0x10101004,0x00111004,0x10111004,
0x20101000,0x30101000,0x20111000,0x30111000,
0x20101004,0x30101004,0x20111004,0x30111004,
/* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 */
0x00000000,0x08000000,0x00000008,0x08000008,
0x00000400,0x08000400,0x00000408,0x08000408,
0x00020000,0x08020000,0x00020008,0x08020008,
0x00020400,0x08020400,0x00020408,0x08020408,
0x00000001,0x08000001,0x00000009,0x08000009,
0x00000401,0x08000401,0x00000409,0x08000409,
0x00020001,0x08020001,0x00020009,0x08020009,
0x00020401,0x08020401,0x00020409,0x08020409,
0x02000000,0x0A000000,0x02000008,0x0A000008,
0x02000400,0x0A000400,0x02000408,0x0A000408,
0x02020000,0x0A020000,0x02020008,0x0A020008,
0x02020400,0x0A020400,0x02020408,0x0A020408,
0x02000001,0x0A000001,0x02000009,0x0A000009,
0x02000401,0x0A000401,0x02000409,0x0A000409,
0x02020001,0x0A020001,0x02020009,0x0A020009,
0x02020401,0x0A020401,0x02020409,0x0A020409,
/* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 */
0x00000000,0x00000100,0x00080000,0x00080100,
0x01000000,0x01000100,0x01080000,0x01080100,
0x00000010,0x00000110,0x00080010,0x00080110,
0x01000010,0x01000110,0x01080010,0x01080110,
0x00200000,0x00200100,0x00280000,0x00280100,
0x01200000,0x01200100,0x01280000,0x01280100,
0x00200010,0x00200110,0x00280010,0x00280110,
0x01200010,0x01200110,0x01280010,0x01280110,
0x00000200,0x00000300,0x00080200,0x00080300,
0x01000200,0x01000300,0x01080200,0x01080300,
0x00000210,0x00000310,0x00080210,0x00080310,
0x01000210,0x01000310,0x01080210,0x01080310,
0x00200200,0x00200300,0x00280200,0x00280300,
0x01200200,0x01200300,0x01280200,0x01280300,
0x00200210,0x00200310,0x00280210,0x00280310,
0x01200210,0x01200310,0x01280210,0x01280310,
/* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 */
0x00000000,0x04000000,0x00040000,0x04040000,
0x00000002,0x04000002,0x00040002,0x04040002,
0x00002000,0x04002000,0x00042000,0x04042000,
0x00002002,0x04002002,0x00042002,0x04042002,
0x00000020,0x04000020,0x00040020,0x04040020,
0x00000022,0x04000022,0x00040022,0x04040022,
0x00002020,0x04002020,0x00042020,0x04042020,
0x00002022,0x04002022,0x00042022,0x04042022,
0x00000800,0x04000800,0x00040800,0x04040800,
0x00000802,0x04000802,0x00040802,0x04040802,
0x00002800,0x04002800,0x00042800,0x04042800,
0x00002802,0x04002802,0x00042802,0x04042802,
0x00000820,0x04000820,0x00040820,0x04040820,
0x00000822,0x04000822,0x00040822,0x04040822,
0x00002820,0x04002820,0x00042820,0x04042820,
0x00002822,0x04002822,0x00042822,0x04042822,
};
-151
View File
@@ -1,151 +0,0 @@
/* spr.h */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: spr.h,v 1.2 1994/07/19 19:22:23 g89r4222 Exp $
*/
static unsigned long des_SPtrans[8][64]={
/* nibble 0 */
0x00820200, 0x00020000, 0x80800000, 0x80820200,
0x00800000, 0x80020200, 0x80020000, 0x80800000,
0x80020200, 0x00820200, 0x00820000, 0x80000200,
0x80800200, 0x00800000, 0x00000000, 0x80020000,
0x00020000, 0x80000000, 0x00800200, 0x00020200,
0x80820200, 0x00820000, 0x80000200, 0x00800200,
0x80000000, 0x00000200, 0x00020200, 0x80820000,
0x00000200, 0x80800200, 0x80820000, 0x00000000,
0x00000000, 0x80820200, 0x00800200, 0x80020000,
0x00820200, 0x00020000, 0x80000200, 0x00800200,
0x80820000, 0x00000200, 0x00020200, 0x80800000,
0x80020200, 0x80000000, 0x80800000, 0x00820000,
0x80820200, 0x00020200, 0x00820000, 0x80800200,
0x00800000, 0x80000200, 0x80020000, 0x00000000,
0x00020000, 0x00800000, 0x80800200, 0x00820200,
0x80000000, 0x80820000, 0x00000200, 0x80020200,
/* nibble 1 */
0x10042004, 0x00000000, 0x00042000, 0x10040000,
0x10000004, 0x00002004, 0x10002000, 0x00042000,
0x00002000, 0x10040004, 0x00000004, 0x10002000,
0x00040004, 0x10042000, 0x10040000, 0x00000004,
0x00040000, 0x10002004, 0x10040004, 0x00002000,
0x00042004, 0x10000000, 0x00000000, 0x00040004,
0x10002004, 0x00042004, 0x10042000, 0x10000004,
0x10000000, 0x00040000, 0x00002004, 0x10042004,
0x00040004, 0x10042000, 0x10002000, 0x00042004,
0x10042004, 0x00040004, 0x10000004, 0x00000000,
0x10000000, 0x00002004, 0x00040000, 0x10040004,
0x00002000, 0x10000000, 0x00042004, 0x10002004,
0x10042000, 0x00002000, 0x00000000, 0x10000004,
0x00000004, 0x10042004, 0x00042000, 0x10040000,
0x10040004, 0x00040000, 0x00002004, 0x10002000,
0x10002004, 0x00000004, 0x10040000, 0x00042000,
/* nibble 2 */
0x41000000, 0x01010040, 0x00000040, 0x41000040,
0x40010000, 0x01000000, 0x41000040, 0x00010040,
0x01000040, 0x00010000, 0x01010000, 0x40000000,
0x41010040, 0x40000040, 0x40000000, 0x41010000,
0x00000000, 0x40010000, 0x01010040, 0x00000040,
0x40000040, 0x41010040, 0x00010000, 0x41000000,
0x41010000, 0x01000040, 0x40010040, 0x01010000,
0x00010040, 0x00000000, 0x01000000, 0x40010040,
0x01010040, 0x00000040, 0x40000000, 0x00010000,
0x40000040, 0x40010000, 0x01010000, 0x41000040,
0x00000000, 0x01010040, 0x00010040, 0x41010000,
0x40010000, 0x01000000, 0x41010040, 0x40000000,
0x40010040, 0x41000000, 0x01000000, 0x41010040,
0x00010000, 0x01000040, 0x41000040, 0x00010040,
0x01000040, 0x00000000, 0x41010000, 0x40000040,
0x41000000, 0x40010040, 0x00000040, 0x01010000,
/* nibble 3 */
0x00100402, 0x04000400, 0x00000002, 0x04100402,
0x00000000, 0x04100000, 0x04000402, 0x00100002,
0x04100400, 0x04000002, 0x04000000, 0x00000402,
0x04000002, 0x00100402, 0x00100000, 0x04000000,
0x04100002, 0x00100400, 0x00000400, 0x00000002,
0x00100400, 0x04000402, 0x04100000, 0x00000400,
0x00000402, 0x00000000, 0x00100002, 0x04100400,
0x04000400, 0x04100002, 0x04100402, 0x00100000,
0x04100002, 0x00000402, 0x00100000, 0x04000002,
0x00100400, 0x04000400, 0x00000002, 0x04100000,
0x04000402, 0x00000000, 0x00000400, 0x00100002,
0x00000000, 0x04100002, 0x04100400, 0x00000400,
0x04000000, 0x04100402, 0x00100402, 0x00100000,
0x04100402, 0x00000002, 0x04000400, 0x00100402,
0x00100002, 0x00100400, 0x04100000, 0x04000402,
0x00000402, 0x04000000, 0x04000002, 0x04100400,
/* nibble 4 */
0x02000000, 0x00004000, 0x00000100, 0x02004108,
0x02004008, 0x02000100, 0x00004108, 0x02004000,
0x00004000, 0x00000008, 0x02000008, 0x00004100,
0x02000108, 0x02004008, 0x02004100, 0x00000000,
0x00004100, 0x02000000, 0x00004008, 0x00000108,
0x02000100, 0x00004108, 0x00000000, 0x02000008,
0x00000008, 0x02000108, 0x02004108, 0x00004008,
0x02004000, 0x00000100, 0x00000108, 0x02004100,
0x02004100, 0x02000108, 0x00004008, 0x02004000,
0x00004000, 0x00000008, 0x02000008, 0x02000100,
0x02000000, 0x00004100, 0x02004108, 0x00000000,
0x00004108, 0x02000000, 0x00000100, 0x00004008,
0x02000108, 0x00000100, 0x00000000, 0x02004108,
0x02004008, 0x02004100, 0x00000108, 0x00004000,
0x00004100, 0x02004008, 0x02000100, 0x00000108,
0x00000008, 0x00004108, 0x02004000, 0x02000008,
/* nibble 5 */
0x20000010, 0x00080010, 0x00000000, 0x20080800,
0x00080010, 0x00000800, 0x20000810, 0x00080000,
0x00000810, 0x20080810, 0x00080800, 0x20000000,
0x20000800, 0x20000010, 0x20080000, 0x00080810,
0x00080000, 0x20000810, 0x20080010, 0x00000000,
0x00000800, 0x00000010, 0x20080800, 0x20080010,
0x20080810, 0x20080000, 0x20000000, 0x00000810,
0x00000010, 0x00080800, 0x00080810, 0x20000800,
0x00000810, 0x20000000, 0x20000800, 0x00080810,
0x20080800, 0x00080010, 0x00000000, 0x20000800,
0x20000000, 0x00000800, 0x20080010, 0x00080000,
0x00080010, 0x20080810, 0x00080800, 0x00000010,
0x20080810, 0x00080800, 0x00080000, 0x20000810,
0x20000010, 0x20080000, 0x00080810, 0x00000000,
0x00000800, 0x20000010, 0x20000810, 0x20080800,
0x20080000, 0x00000810, 0x00000010, 0x20080010,
/* nibble 6 */
0x00001000, 0x00000080, 0x00400080, 0x00400001,
0x00401081, 0x00001001, 0x00001080, 0x00000000,
0x00400000, 0x00400081, 0x00000081, 0x00401000,
0x00000001, 0x00401080, 0x00401000, 0x00000081,
0x00400081, 0x00001000, 0x00001001, 0x00401081,
0x00000000, 0x00400080, 0x00400001, 0x00001080,
0x00401001, 0x00001081, 0x00401080, 0x00000001,
0x00001081, 0x00401001, 0x00000080, 0x00400000,
0x00001081, 0x00401000, 0x00401001, 0x00000081,
0x00001000, 0x00000080, 0x00400000, 0x00401001,
0x00400081, 0x00001081, 0x00001080, 0x00000000,
0x00000080, 0x00400001, 0x00000001, 0x00400080,
0x00000000, 0x00400081, 0x00400080, 0x00001080,
0x00000081, 0x00001000, 0x00401081, 0x00400000,
0x00401080, 0x00000001, 0x00001001, 0x00401081,
0x00400001, 0x00401080, 0x00401000, 0x00001001,
/* nibble 7 */
0x08200020, 0x08208000, 0x00008020, 0x00000000,
0x08008000, 0x00200020, 0x08200000, 0x08208020,
0x00000020, 0x08000000, 0x00208000, 0x00008020,
0x00208020, 0x08008020, 0x08000020, 0x08200000,
0x00008000, 0x00208020, 0x00200020, 0x08008000,
0x08208020, 0x08000020, 0x00000000, 0x00208000,
0x08000000, 0x00200000, 0x08008020, 0x08200020,
0x00200000, 0x00008000, 0x08208000, 0x00000020,
0x00200000, 0x00008000, 0x08000020, 0x08208020,
0x00008020, 0x08000000, 0x00000000, 0x00208000,
0x08200020, 0x08008020, 0x08008000, 0x00200020,
0x08208000, 0x00000020, 0x00200020, 0x08008000,
0x08208020, 0x00200000, 0x08200000, 0x08000020,
0x00208000, 0x00008020, 0x08008020, 0x08200000,
0x00000020, 0x08208000, 0x00208020, 0x00000000,
0x08000000, 0x08200020, 0x00008000, 0x00208020};
-72
View File
@@ -1,72 +0,0 @@
/* ofb_enc.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: ofb_enc.c,v 1.2 1994/07/19 19:21:59 g89r4222 Exp $
*/
#include "des_locl.h"
/* The input and output are loaded in multiples of 8 bits.
* What this means is that if you hame numbits=12 and length=2
* the first 12 bits will be retrieved from the first byte and half
* the second. The second 12 bits will come from the 3rd and half the 4th
* byte.
*/
int des_ofb_encrypt(in,out,numbits,length,schedule,ivec)
unsigned char *in,*out;
int numbits;
long length;
des_key_schedule schedule;
des_cblock *ivec;
{
register unsigned long d0,d1,v0,v1,n=(numbits+7)/8;
register unsigned long mask0,mask1;
register long l=length;
register int num=numbits;
unsigned long ti[2];
unsigned char *iv;
if (num > 64) return(0);
if (num > 32)
{
mask0=0xffffffff;
if (num >= 64)
mask1=mask0;
else
mask1=(1L<<(num-32))-1;
}
else
{
if (num == 32)
mask0=0xffffffff;
else
mask0=(1L<<num)-1;
mask1=0x00000000;
}
iv=(unsigned char *)ivec;
c2l(iv,v0);
c2l(iv,v1);
ti[0]=v0;
ti[1]=v1;
while (l-- > 0)
{
des_encrypt((unsigned long *)ti,(unsigned long *)ti,
schedule,DES_ENCRYPT);
c2ln(in,d0,d1,n);
in+=n;
d0=(d0^ti[0])&mask0;
d1=(d1^ti[1])&mask1;
l2cn(d0,d1,out,n);
out+=n;
}
v0=ti[0];
v1=ti[1];
iv=(unsigned char *)ivec;
l2c(v0,iv);
l2c(v1,iv);
v0=v1=d0=d1=ti[0]=ti[1]=0;
return(0);
}
-78
View File
@@ -1,78 +0,0 @@
/* pcbc_enc.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: pcbc_enc.c,v 1.2 1994/07/19 19:22:01 g89r4222 Exp $
*/
#include "des_locl.h"
int des_pcbc_encrypt(input,output,length,schedule,ivec,encrypt)
des_cblock *input;
des_cblock *output;
register long length;
des_key_schedule schedule;
des_cblock *ivec;
int encrypt;
{
register unsigned long sin0,sin1,xor0,xor1,tout0,tout1;
unsigned long tin[2],tout[2];
unsigned char *in,*out,*iv;
in=(unsigned char *)input;
out=(unsigned char *)output;
iv=(unsigned char *)ivec;
if (encrypt)
{
c2l(iv,xor0);
c2l(iv,xor1);
for (; length>0; length-=8)
{
if (length >= 8)
{
c2l(in,sin0);
c2l(in,sin1);
}
else
c2ln(in,sin0,sin1,length);
tin[0]=sin0^xor0;
tin[1]=sin1^xor1;
des_encrypt((unsigned long *)tin,(unsigned long *)tout,
schedule,encrypt);
tout0=tout[0];
tout1=tout[1];
xor0=sin0^tout[0];
xor1=sin1^tout[1];
l2c(tout0,out);
l2c(tout1,out);
}
}
else
{
c2l(iv,xor0); c2l(iv,xor1);
for (; length>0; length-=8)
{
c2l(in,sin0);
c2l(in,sin1);
tin[0]=sin0;
tin[1]=sin1;
des_encrypt((unsigned long *)tin,(unsigned long *)tout,
schedule,encrypt);
tout0=tout[0]^xor0;
tout1=tout[1]^xor1;
if (length >= 8)
{
l2c(tout0,out);
l2c(tout1,out);
}
else
l2cn(tout0,tout1,out,length);
xor0=tout0^sin0;
xor1=tout1^sin1;
}
}
tin[0]=tin[1]=tout[0]=tout[1]=0;
sin0=sin1=xor0=xor1=tout0=tout1=0;
return(0);
}
-93
View File
@@ -1,93 +0,0 @@
/* qud_cksm.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: qud_cksm.c,v 1.1.1.1 1994/09/30 14:49:51 csgr Exp $
*/
/* From "Message Authentication" R.R. Jueneman, S.M. Matyas, C.H. Meyer
* IEEE Communications Magazine Sept 1985 Vol. 23 No. 9 p 29-40
* This module in only based on the code in this paper and is
* almost definitely not the same as the MIT implementation.
*/
#include "des_locl.h"
/* bug fix for dos - 7/6/91 - Larry [email protected] */
#define B0(a) (((unsigned long)(a)))
#define B1(a) (((unsigned long)(a))<<8)
#define B2(a) (((unsigned long)(a))<<16)
#define B3(a) (((unsigned long)(a))<<24)
/* used to scramble things a bit */
/* Got the value MIT uses via brute force :-) 2/10/90 eay */
#define NOISE ((unsigned long)83653421)
unsigned long des_quad_cksum(input,output,length,out_count,seed)
des_cblock *input;
des_cblock *output;
long length;
int out_count;
des_cblock *seed;
{
unsigned long z0,z1,t0,t1;
int i;
long l=0;
unsigned char *cp;
unsigned char *lp;
if (out_count < 1) out_count=1;
lp=(unsigned char *)output;
z0=B0((*seed)[0])|B1((*seed)[1])|B2((*seed)[2])|B3((*seed)[3]);
z1=B0((*seed)[4])|B1((*seed)[5])|B2((*seed)[6])|B3((*seed)[7]);
for (i=0; ((i<4)&&(i<out_count)); i++)
{
cp=(unsigned char *)input;
l=length;
while (l > 0)
{
if (l > 1)
{
t0= (unsigned long)(*(cp++));
t0|=(unsigned long)B1(*(cp++));
l--;
}
else
t0= (unsigned long)(*(cp++));
l--;
/* add */
t0+=z0;
t0&=0xffffffff;
t1=z1;
/* square, well sort of square */
z0=((((t0*t0)&0xffffffff)+((t1*t1)&0xffffffff))
&0xffffffff)%0x7fffffff;
z1=((t0*((t1+NOISE)&0xffffffff))&0xffffffff)%0x7fffffff;
}
if (lp != NULL)
{
/* I believe I finally have things worked out.
* The MIT library assumes that the checksum
* is one huge number and it is returned in a
* host dependant byte order.
*/
static unsigned long l=1;
static unsigned char *c=(unsigned char *)&l;
if (c[0])
{
l2c(z0,lp);
l2c(z1,lp);
}
else
{
lp=output[out_count-i-1];
l2n(z1,lp);
l2n(z0,lp);
}
}
}
return(z0);
}
-49
View File
@@ -1,49 +0,0 @@
/* rand_key.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: rand_key.c,v 1.2 1995/05/09 18:05:15 wollman Exp $
*/
#include <sys/types.h>
#include <sys/time.h>
#include <unistd.h>
#include "des_locl.h"
int des_random_key(ret)
des_cblock ret;
{
des_key_schedule ks;
static unsigned long c=0;
static unsigned short pid=0;
static des_cblock data={0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef};
des_cblock key;
unsigned char *p;
unsigned long t;
#ifdef MSDOS
pid=1;
#else
if (!pid) pid=getpid();
#endif
p=key;
t=(unsigned long)time(NULL);
l2c(t,p);
t=(unsigned long)((pid)|((c++)<<16));
l2c(t,p);
des_set_odd_parity((des_cblock *)data);
des_set__key((des_cblock *)data,ks);
des_cbc_cksum((des_cblock *)key,(des_cblock *)key,
(long)sizeof(key),ks,(des_cblock *)data);
des_set_odd_parity((des_cblock *)key);
des_cbc_cksum((des_cblock *)key,(des_cblock *)key,
(long)sizeof(key),ks,(des_cblock *)data);
des_set_odd_parity((des_cblock *)key);
bcopy(key,ret,sizeof(key));
bzero(key,sizeof(key));
bzero(ks,sizeof(ks));
t=0;
return(0);
}
-333
View File
@@ -1,333 +0,0 @@
/* read_pwd.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/* 06-Apr-92 Luke Brennan Support for VMS */
/*-
* $Id: read_pwd.c,v 1.2 1995/01/25 02:27:00 ache Exp $
*/
#include "des_locl.h"
#include <string.h>
#include <signal.h>
#include <setjmp.h>
#include <sys/param.h>
#ifdef BSD
#include <pwd.h>
extern char * getpass(const char * prompt);
#endif
#ifndef VMS
#ifndef MSDOS
#ifndef _IRIX
#ifdef CRAY
#include <termio.h>
#define sgttyb termio
#define sg_flags c_lflag
#else /* !CRAY */
#include <sgtty.h>
#endif
#include <sys/ioctl.h>
#else /* _IRIX */
struct sgttyb {
char sg_ispeed; /* input speed */
char sg_ospeed; /* output speed */
char sg_erase; /* erase character */
char sg_kill; /* kill character */
short sg_flags; /* mode flags */
};
#endif
#else /* MSDOS */
#define fgets(a,b,c) noecho_fgets(a,b,c)
#ifndef NSIG
#define NSIG 32
#endif
#endif
#else /* VMS */
#include <ssdef.h>
#include <iodef.h>
#include <ttdef.h>
#include <descrip.h>
struct IOSB {
short iosb$w_value;
short iosb$w_count;
long iosb$l_info;
};
#endif
static void read_till_nl();
static int read_pw();
static void recsig();
static void pushsig();
static void popsig();
#ifdef MSDOS
static int noecho_fgets();
#endif
static void (*savsig[NSIG])();
static jmp_buf save;
int des_read_password(key,prompt,verify)
des_cblock *key;
char *prompt;
int verify;
{
int ok;
char buf[BUFSIZ],buff[BUFSIZ];
if ((ok=read_pw(buf,buff,BUFSIZ,prompt,verify)) == 0)
des_string_to_key(buf,key);
bzero(buf,BUFSIZ);
bzero(buff,BUFSIZ);
return(ok);
}
int des_read_2passwords(key1,key2,prompt,verify)
des_cblock *key1;
des_cblock *key2;
char *prompt;
int verify;
{
int ok;
char buf[BUFSIZ],buff[BUFSIZ];
if ((ok=read_pw(buf,buff,BUFSIZ,prompt,verify)) == 0)
des_string_to_2keys(buf,key1,key2);
bzero(buf,BUFSIZ);
bzero(buff,BUFSIZ);
return(ok);
}
#if defined(BSD)
int des_read_pw_string(buf, length, prompt, verify)
char *buf;
int length;
char * prompt;
int verify;
{
int len = MIN(_PASSWORD_LEN, length);
char * s;
int ok = 0;
fflush(stdout);
while (!ok) {
s = getpass(prompt);
strncpy(buf, s, len);
if(verify) {
printf("Verifying password\n"); fflush(stdout);
if(strncmp(getpass(prompt), buf, len) != 0) {
printf("\nVerify failure - try again\n");
fflush(stdout);
continue;
}
}
ok = 1;
buf[len-1] = '\0';
}
return (!ok);
}
#else /* BSD */
int des_read_pw_string(buf,length,prompt,verify)
char *buf;
int length;
char *prompt;
int verify;
{
char buff[BUFSIZ];
int ret;
ret=read_pw(buf,buff,(length>BUFSIZ)?BUFSIZ:length,prompt,verify);
bzero(buff,BUFSIZ);
return(ret);
}
#endif
static void read_till_nl(in)
FILE *in;
{
#define SIZE 4
char buf[SIZE+1];
do {
fgets(buf,SIZE,in);
} while (index(buf,'\n') == NULL);
}
/* return 0 if ok, 1 (or -1) otherwise */
static int read_pw(buf,buff,size,prompt,verify)
char *buf,*buff;
int size;
char *prompt;
int verify;
{
#ifndef VMS
#ifndef MSDOS
struct sgttyb tty_orig,tty_new;
#endif /* !MSDOS */
#else
struct IOSB iosb;
$DESCRIPTOR(terminal,"TT");
long tty_orig[3], tty_new[3];
long status;
unsigned short channel = 0;
#endif
int ok=0;
char *p;
int ps=0;
FILE *tty;
#ifndef MSDOS
if ((tty=fopen("/dev/tty","r")) == NULL)
tty=stdin;
#else /* MSDOS */
if ((tty=fopen("con","r")) == NULL)
tty=stdin;
#endif /* MSDOS */
#ifndef VMS
#ifdef TIOCGETP
if (ioctl(fileno(tty),TIOCGETP,(char *)&tty_orig) == -1)
return(-1);
bcopy(&(tty_orig),&(tty_new),sizeof(tty_orig));
#endif
#else /* VMS */
status = SYS$ASSIGN(&terminal,&channel,0,0);
if (status != SS$_NORMAL)
return(-1);
status=SYS$QIOW(0,channel,IO$_SENSEMODE,&iosb,0,0,tty_orig,12,0,0,0,0);
if ((status != SS$_NORMAL) || (iosb.iosb$w_value != SS$_NORMAL))
return(-1);
#endif
if (setjmp(save))
{
ok=0;
goto error;
}
pushsig();
ps=1;
#ifndef VMS
#ifndef MSDOS
tty_new.sg_flags &= ~ECHO;
#endif /* !MSDOS */
#ifdef TIOCSETP
if (ioctl(fileno(tty),TIOCSETP,(char *)&tty_new) == -1)
return(-1);
#endif
#else /* VMS */
tty_new[0] = tty_orig[0];
tty_new[1] = tty_orig[1] | TT$M_NOECHO;
tty_new[2] = tty_orig[2];
status = SYS$QIOW(0,channel,IO$_SETMODE,&iosb,0,0,tty_new,12,0,0,0,0);
if ((status != SS$_NORMAL) || (iosb.iosb$w_value != SS$_NORMAL))
return(-1);
#endif /* VMS */
ps=2;
fflush(stdout);
fflush(stderr);
while (!ok)
{
fputs(prompt,stderr);
fflush(stderr);
buf[0]='\0';
fgets(buf,size,tty);
if (feof(tty)) goto error;
if ((p=(char *)index(buf,'\n')) != NULL)
*p='\0';
else read_till_nl(tty);
if (verify)
{
fprintf(stderr,"\nVerifying password %s",prompt);
fflush(stderr);
buff[0]='\0';
fgets(buff,size,tty);
if (feof(tty)) goto error;
if ((p=(char *)index(buff,'\n')) != NULL)
*p='\0';
else read_till_nl(tty);
if (strcmp(buf,buff) != 0)
{
fprintf(stderr,"\nVerify failure - try again\n");
fflush(stderr);
continue;
}
}
ok=1;
}
error:
fprintf(stderr,"\n");
/* What can we do if there is an error? */
#ifndef VMS
#ifdef TIOCSETP
if (ps >= 2) ioctl(fileno(tty),TIOCSETP,(char *)&tty_orig);
#endif
#else /* VMS */
if (ps >= 2)
status = SYS$QIOW(0,channel,IO$_SETMODE,&iosb,0,0
,tty_orig,12,0,0,0,0);
#endif /* VMS */
if (ps >= 1) popsig();
if (stdin != tty) fclose(tty);
#ifdef VMS
status = SYS$DASSGN(channel);
#endif
return(!ok);
}
static void pushsig()
{
int i;
for (i=0; i<NSIG; i++)
savsig[i]=signal(i,recsig);
}
static void popsig()
{
int i;
for (i=0; i<NSIG; i++)
signal(i,savsig[i]);
}
static void recsig()
{
longjmp(save,1);
}
#ifdef MSDOS
static int noecho_fgets(buf,size,tty)
char *buf;
int size;
FILE *tty;
{
int i;
char *p;
p=buf;
for (;;)
{
if (size == 0)
{
*p='\0';
break;
}
size--;
i=getch();
if (i == '\r') i='\n';
*(p++)=i;
if (i == '\n')
{
*p='\0';
break;
}
}
}
#endif
-190
View File
@@ -1,190 +0,0 @@
/* set_key.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/* set_key.c v 1.4 eay 24/9/91
* 1.4 Speed up by 400% :-)
* 1.3 added register declarations.
* 1.2 unrolled make_key_sched a bit more
* 1.1 added norm_expand_bits
* 1.0 First working version
*/
/*-
* $Id: set_key.c,v 1.1.1.1 1994/09/30 14:49:51 csgr Exp $
*/
#include "des_locl.h"
#include "podd.h"
#include "sk.h"
static int check_parity();
int des_check_key=0;
void des_set_odd_parity(key)
des_cblock *key;
{
int i;
for (i=0; i<DES_KEY_SZ; i++)
(*key)[i]=odd_parity[(*key)[i]];
}
static int check_parity(key)
des_cblock *key;
{
int i;
for (i=0; i<DES_KEY_SZ; i++)
{
if ((*key)[i] != odd_parity[(*key)[i]])
return(0);
}
return(1);
}
/* Weak and semi week keys as take from
* %A D.W. Davies
* %A W.L. Price
* %T Security for Computer Networks
* %I John Wiley & Sons
* %D 1984
* Many thanks to smb@ulysses.att.com (Steven Bellovin) for the reference
* (and actual cblock values).
*/
#define NUM_WEAK_KEY 16
static des_cblock weak_keys[NUM_WEAK_KEY]={
/* weak keys */
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,
0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,
/* semi-weak keys */
0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,
0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,
0x1F,0xE0,0x1F,0xE0,0x0E,0xF1,0x0E,0xF1,
0xE0,0x1F,0xE0,0x1F,0xF1,0x0E,0xF1,0x0E,
0x01,0xE0,0x01,0xE0,0x01,0xF1,0x01,0xF1,
0xE0,0x01,0xE0,0x01,0xF1,0x01,0xF1,0x01,
0x1F,0xFE,0x1F,0xFE,0x0E,0xFE,0x0E,0xFE,
0xFE,0x1F,0xFE,0x1F,0xFE,0x0E,0xFE,0x0E,
0x01,0x1F,0x01,0x1F,0x01,0x0E,0x01,0x0E,
0x1F,0x01,0x1F,0x01,0x0E,0x01,0x0E,0x01,
0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1,0xFE,
0xFE,0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1};
int des_is_weak_key(key)
des_cblock *key;
{
int i;
for (i=0; i<NUM_WEAK_KEY; i++)
/* Added == 0 to comparision, I obviously don't run
* this section very often :-(, thanks to
* engineering@MorningStar.Com for the fix
* eay 93/06/29 */
if (memcmp(weak_keys[i],key,sizeof(key)) == 0) return(1);
return(0);
}
/* NOW DEFINED IN des_local.h
* See ecb_encrypt.c for a pseudo description of these macros.
* #define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\
* (b)^=(t),\
* (a)=((a)^((t)<<(n))))
*/
#define HPERM_OP(a,t,n,m) ((t)=((((a)<<(16-(n)))^(a))&(m)),\
(a)=(a)^(t)^(t>>(16-(n))))
static char shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0};
/* return 0 if key parity is odd (correct),
* return -1 if key parity error,
* return -2 if illegal weak key.
*/
int des_set__key(key,schedule)
des_cblock *key;
des_key_schedule schedule;
{
register unsigned long c,d,t,s;
register unsigned char *in;
register unsigned long *k;
register int i;
if (des_check_key)
{
if (!check_parity(key))
return(-1);
if (des_is_weak_key(key))
return(-2);
}
k=(unsigned long *)schedule;
in=(unsigned char *)key;
c2l(in,c);
c2l(in,d);
/* do PC1 in 60 simple operations */
/* PERM_OP(d,c,t,4,0x0f0f0f0f);
HPERM_OP(c,t,-2, 0xcccc0000);
HPERM_OP(c,t,-1, 0xaaaa0000);
HPERM_OP(c,t, 8, 0x00ff0000);
HPERM_OP(c,t,-1, 0xaaaa0000);
HPERM_OP(d,t,-8, 0xff000000);
HPERM_OP(d,t, 8, 0x00ff0000);
HPERM_OP(d,t, 2, 0x33330000);
d=((d&0x00aa00aa)<<7)|((d&0x55005500)>>7)|(d&0xaa55aa55);
d=(d>>8)|((c&0xf0000000)>>4);
c&=0x0fffffff; */
/* I now do it in 47 simple operations :-)
* Thanks to John Fletcher (john_fletcher@lccmail.ocf.llnl.gov)
* for the inspiration. :-) */
PERM_OP (d,c,t,4,0x0f0f0f0f);
HPERM_OP(c,t,-2,0xcccc0000);
HPERM_OP(d,t,-2,0xcccc0000);
PERM_OP (d,c,t,1,0x55555555);
PERM_OP (c,d,t,8,0x00ff00ff);
PERM_OP (d,c,t,1,0x55555555);
d= (((d&0x000000ff)<<16)| (d&0x0000ff00) |
((d&0x00ff0000)>>16)|((c&0xf0000000)>>4));
c&=0x0fffffff;
for (i=0; i<ITERATIONS; i++)
{
if (shifts2[i])
{ c=((c>>2)|(c<<26)); d=((d>>2)|(d<<26)); }
else
{ c=((c>>1)|(c<<27)); d=((d>>1)|(d<<27)); }
c&=0x0fffffff;
d&=0x0fffffff;
/* could be a few less shifts but I am to lazy at this
* point in time to investigate */
s= des_skb[0][ (c )&0x3f ]|
des_skb[1][((c>> 6)&0x03)|((c>> 7)&0x3c)]|
des_skb[2][((c>>13)&0x0f)|((c>>14)&0x30)]|
des_skb[3][((c>>20)&0x01)|((c>>21)&0x06) |
((c>>22)&0x38)];
t= des_skb[4][ (d )&0x3f ]|
des_skb[5][((d>> 7)&0x03)|((d>> 8)&0x3c)]|
des_skb[6][ (d>>15)&0x3f ]|
des_skb[7][((d>>21)&0x0f)|((d>>22)&0x30)];
/* table contained 0213 4657 */
*(k++)=((t<<16)|(s&0x0000ffff))&0xffffffff;
s= ((s>>16)|(t&0xffff0000));
s=(s<<4)|(s>>28);
*(k++)=s&0xffffffff;
}
return(0);
}
int des_key_sched(key,schedule)
des_cblock *key;
des_key_schedule schedule;
{
return(des_set__key(key,schedule));
}
-121
View File
@@ -1,121 +0,0 @@
/* str2key.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
/*-
* $Id: str2key.c,v 1.2 1994/07/19 19:22:08 g89r4222 Exp $
*/
#include "des_locl.h"
extern int des_check_key;
int des_string_to_key(str,key)
char *str;
des_cblock *key;
{
des_key_schedule ks;
int i,length;
register unsigned char j;
bzero(key,8);
length=strlen(str);
#ifdef OLD_STR_TO_KEY
for (i=0; i<length; i++)
(*key)[i%8]^=(str[i]<<1);
#else /* MIT COMPATIBLE */
for (i=0; i<length; i++)
{
j=str[i];
if ((i%16) < 8)
(*key)[i%8]^=(j<<1);
else
{
/* Reverse the bit order 05/05/92 eay */
j=((j<<4)&0xf0)|((j>>4)&0x0f);
j=((j<<2)&0xcc)|((j>>2)&0x33);
j=((j<<1)&0xaa)|((j>>1)&0x55);
(*key)[7-(i%8)]^=j;
}
}
#endif
des_set_odd_parity((des_cblock *)key);
i=des_check_key;
des_check_key=0;
des_set__key((des_cblock *)key,ks);
des_check_key=i;
des_cbc_cksum((des_cblock *)str,(des_cblock *)key,(long)length,ks,
(des_cblock *)key);
bzero(ks,sizeof(ks));
des_set_odd_parity((des_cblock *)key);
return(0);
}
int des_string_to_2keys(str,key1,key2)
char *str;
des_cblock *key1,*key2;
{
des_key_schedule ks;
int i,length;
register unsigned char j;
bzero(key1,8);
bzero(key2,8);
length=strlen(str);
#ifdef OLD_STR_TO_KEY
if (length <= 8)
{
for (i=0; i<length; i++)
{
(*key2)[i]=(*key1)[i]=(str[i]<<1);
}
}
else
{
for (i=0; i<length; i++)
{
if ((i/8)&1)
(*key2)[i%8]^=(str[i]<<1);
else
(*key1)[i%8]^=(str[i]<<1);
}
}
#else /* MIT COMPATIBLE */
for (i=0; i<length; i++)
{
j=str[i];
if ((i%32) < 16)
{
if ((i%16) < 8)
(*key1)[i%8]^=(j<<1);
else
(*key2)[i%8]^=(j<<1);
}
else
{
j=((j<<4)&0xf0)|((j>>4)&0x0f);
j=((j<<2)&0xcc)|((j>>2)&0x33);
j=((j<<1)&0xaa)|((j>>1)&0x55);
if ((i%16) < 8)
(*key1)[7-(i%8)]^=j;
else
(*key2)[7-(i%8)]^=j;
}
}
if (length <= 8) bcopy(key1,key2,8);
#endif
des_set_odd_parity((des_cblock *)key1);
des_set_odd_parity((des_cblock *)key2);
i=des_check_key;
des_check_key=0;
des_set__key((des_cblock *)key1,ks);
des_cbc_cksum((des_cblock *)str,(des_cblock *)key1,(long)length,ks,
(des_cblock *)key1);
des_set__key((des_cblock *)key2,ks);
des_cbc_cksum((des_cblock *)str,(des_cblock *)key2,(long)length,ks,
(des_cblock *)key2);
des_check_key=i;
bzero(ks,sizeof(ks));
des_set_odd_parity(key1);
des_set_odd_parity(key2);
return(0);
}
-9
View File
@@ -1,9 +0,0 @@
# from: @(#)Makefile 5.4 (Berkeley) 5/11/90
# $Id: Makefile,v 1.2 1994/07/19 19:22:28 g89r4222 Exp $
PROG= destest
CFLAGS+= -I${.CURDIR}/../include
DPADD= ${LIBDES}
LDADD= -ldes
.include <bsd.prog.mk>
-365
View File
@@ -1,365 +0,0 @@
/* destest.c */
/* Copyright (C) 1993 Eric Young - see README for more details */
#include <stdio.h>
#include "des_locl.h" /* for des.h and bcopy macros */
/* tisk tisk - the test keys don't all have odd parity :-( */
/* test data */
#define NUM_TESTS 34
static unsigned char key_data[NUM_TESTS][8]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFE,0xDC,0xBA,0x98,0x76,0x54,0x32,0x10,
0x7C,0xA1,0x10,0x45,0x4A,0x1A,0x6E,0x57,
0x01,0x31,0xD9,0x61,0x9D,0xC1,0x37,0x6E,
0x07,0xA1,0x13,0x3E,0x4A,0x0B,0x26,0x86,
0x38,0x49,0x67,0x4C,0x26,0x02,0x31,0x9E,
0x04,0xB9,0x15,0xBA,0x43,0xFE,0xB5,0xB6,
0x01,0x13,0xB9,0x70,0xFD,0x34,0xF2,0xCE,
0x01,0x70,0xF1,0x75,0x46,0x8F,0xB5,0xE6,
0x43,0x29,0x7F,0xAD,0x38,0xE3,0x73,0xFE,
0x07,0xA7,0x13,0x70,0x45,0xDA,0x2A,0x16,
0x04,0x68,0x91,0x04,0xC2,0xFD,0x3B,0x2F,
0x37,0xD0,0x6B,0xB5,0x16,0xCB,0x75,0x46,
0x1F,0x08,0x26,0x0D,0x1A,0xC2,0x46,0x5E,
0x58,0x40,0x23,0x64,0x1A,0xBA,0x61,0x76,
0x02,0x58,0x16,0x16,0x46,0x29,0xB0,0x07,
0x49,0x79,0x3E,0xBC,0x79,0xB3,0x25,0x8F,
0x4F,0xB0,0x5E,0x15,0x15,0xAB,0x73,0xA7,
0x49,0xE9,0x5D,0x6D,0x4C,0xA2,0x29,0xBF,
0x01,0x83,0x10,0xDC,0x40,0x9B,0x26,0xD6,
0x1C,0x58,0x7F,0x1C,0x13,0x92,0x4F,0xEF,
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x1F,0x1F,0x1F,0x1F,0x0E,0x0E,0x0E,0x0E,
0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
0xFE,0xDC,0xBA,0x98,0x76,0x54,0x32,0x10};
static unsigned char plain_data[NUM_TESTS][8]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
0x01,0xA1,0xD6,0xD0,0x39,0x77,0x67,0x42,
0x5C,0xD5,0x4C,0xA8,0x3D,0xEF,0x57,0xDA,
0x02,0x48,0xD4,0x38,0x06,0xF6,0x71,0x72,
0x51,0x45,0x4B,0x58,0x2D,0xDF,0x44,0x0A,
0x42,0xFD,0x44,0x30,0x59,0x57,0x7F,0xA2,
0x05,0x9B,0x5E,0x08,0x51,0xCF,0x14,0x3A,
0x07,0x56,0xD8,0xE0,0x77,0x47,0x61,0xD2,
0x76,0x25,0x14,0xB8,0x29,0xBF,0x48,0x6A,
0x3B,0xDD,0x11,0x90,0x49,0x37,0x28,0x02,
0x26,0x95,0x5F,0x68,0x35,0xAF,0x60,0x9A,
0x16,0x4D,0x5E,0x40,0x4F,0x27,0x52,0x32,
0x6B,0x05,0x6E,0x18,0x75,0x9F,0x5C,0xCA,
0x00,0x4B,0xD6,0xEF,0x09,0x17,0x60,0x62,
0x48,0x0D,0x39,0x00,0x6E,0xE7,0x62,0xF2,
0x43,0x75,0x40,0xC8,0x69,0x8F,0x3C,0xFA,
0x07,0x2D,0x43,0xA0,0x77,0x07,0x52,0x92,
0x02,0xFE,0x55,0x77,0x81,0x17,0xF1,0x2A,
0x1D,0x9D,0x5C,0x50,0x18,0xF7,0x28,0xC2,
0x30,0x55,0x32,0x28,0x6D,0x6F,0x29,0x5A,
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
static unsigned char cipher_data[NUM_TESTS][8]={
0x8C,0xA6,0x4D,0xE9,0xC1,0xB1,0x23,0xA7,
0x73,0x59,0xB2,0x16,0x3E,0x4E,0xDC,0x58,
0x95,0x8E,0x6E,0x62,0x7A,0x05,0x55,0x7B,
0xF4,0x03,0x79,0xAB,0x9E,0x0E,0xC5,0x33,
0x17,0x66,0x8D,0xFC,0x72,0x92,0x53,0x2D,
0x8A,0x5A,0xE1,0xF8,0x1A,0xB8,0xF2,0xDD,
0x8C,0xA6,0x4D,0xE9,0xC1,0xB1,0x23,0xA7,
0xED,0x39,0xD9,0x50,0xFA,0x74,0xBC,0xC4,
0x69,0x0F,0x5B,0x0D,0x9A,0x26,0x93,0x9B,
0x7A,0x38,0x9D,0x10,0x35,0x4B,0xD2,0x71,
0x86,0x8E,0xBB,0x51,0xCA,0xB4,0x59,0x9A,
0x71,0x78,0x87,0x6E,0x01,0xF1,0x9B,0x2A,
0xAF,0x37,0xFB,0x42,0x1F,0x8C,0x40,0x95,
0x86,0xA5,0x60,0xF1,0x0E,0xC6,0xD8,0x5B,
0x0C,0xD3,0xDA,0x02,0x00,0x21,0xDC,0x09,
0xEA,0x67,0x6B,0x2C,0xB7,0xDB,0x2B,0x7A,
0xDF,0xD6,0x4A,0x81,0x5C,0xAF,0x1A,0x0F,
0x5C,0x51,0x3C,0x9C,0x48,0x86,0xC0,0x88,
0x0A,0x2A,0xEE,0xAE,0x3F,0xF4,0xAB,0x77,
0xEF,0x1B,0xF0,0x3E,0x5D,0xFA,0x57,0x5A,
0x88,0xBF,0x0D,0xB6,0xD7,0x0D,0xEE,0x56,
0xA1,0xF9,0x91,0x55,0x41,0x02,0x0B,0x56,
0x6F,0xBF,0x1C,0xAF,0xCF,0xFD,0x05,0x56,
0x2F,0x22,0xE4,0x9B,0xAB,0x7C,0xA1,0xAC,
0x5A,0x6B,0x61,0x2C,0xC2,0x6C,0xCE,0x4A,
0x5F,0x4C,0x03,0x8E,0xD1,0x2B,0x2E,0x41,
0x63,0xFA,0xC0,0xD0,0x34,0xD9,0xF7,0x93,
0x61,0x7B,0x3A,0x0C,0xE8,0xF0,0x71,0x00,
0xDB,0x95,0x86,0x05,0xF8,0xC8,0xC6,0x06,
0xED,0xBF,0xD1,0xC6,0x6C,0x29,0xCC,0xC7,
0x35,0x55,0x50,0xB2,0x15,0x0E,0x24,0x51,
0xCA,0xAA,0xAF,0x4D,0xEA,0xF1,0xDB,0xAE,
0xD5,0xD4,0x4F,0xF7,0x20,0x68,0x3D,0x0D,
0x2A,0x2B,0xB0,0x08,0xDF,0x97,0xC2,0xF2};
static unsigned char cbc_key[8]={0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef};
static unsigned char cbc_iv[8]={0xfe,0xdc,0xba,0x98,0x76,0x54,0x32,0x10};
static unsigned char cbc_data[40]="7654321 Now is the time for ";
static unsigned char cbc_ok[32]={
0xcc,0xd1,0x73,0xff,0xab,0x20,0x39,0xf4,
0xac,0xd8,0xae,0xfd,0xdf,0xd8,0xa1,0xeb,
0x46,0x8e,0x91,0x15,0x78,0x88,0xba,0x68,
0x1d,0x26,0x93,0x97,0xf7,0xfe,0x62,0xb4};
static unsigned char pcbc_ok[32]={
0xcc,0xd1,0x73,0xff,0xab,0x20,0x39,0xf4,
0x6d,0xec,0xb4,0x70,0xa0,0xe5,0x6b,0x15,
0xae,0xa6,0xbf,0x61,0xed,0x7d,0x9c,0x9f,
0xf7,0x17,0x46,0x3b,0x8a,0xb3,0xcc,0x88};
static unsigned char cksum_ok[8]={
0x1d,0x26,0x93,0x97,0xf7,0xfe,0x62,0xb4};
static unsigned char cfb_key[8]={0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef};
static unsigned char cfb_iv[8]={0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef};
static unsigned char cfb_buf1[24],cfb_buf2[24],cfb_tmp[8];
static unsigned char cfb_plain[24]=
{
0x4e,0x6f,0x77,0x20,0x69,0x73,
0x20,0x74,0x68,0x65,0x20,0x74,
0x69,0x6d,0x65,0x20,0x66,0x6f,
0x72,0x20,0x61,0x6c,0x6c,0x20
};
static unsigned char cfb_cipher[24]=
{
0xf3,0x1f,0xda,0x07,0x01,0x14,
0x62,0xee,0x18,0x7f,0x43,0xd8,
0x0a,0x7c,0xd9,0xb5,0xb0,0xd2,
0x90,0xda,0x6e,0x5b,0x9a,0x87
};
static unsigned char ofb_key[8]={0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef};
static unsigned char ofb_iv[8]={0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef};
static unsigned char ofb_plain[24]=
{
0x4e,0x6f,0x77,0x20,0x69,0x73,
0x20,0x74,0x68,0x65,0x20,0x74,
0x69,0x6d,0x65,0x20,0x66,0x6f,
0x72,0x20,0x61,0x6c,0x6c,0x20
};
static unsigned char ofb_buf1[24],ofb_buf2[24],ofb_tmp[8];
static unsigned char ofb_cipher[24]=
{
0xf3,0x09,0x62,0x49,0xc7,0xf4,0x6e,0x51,
0x35,0xf2,0x4a,0x24,0x2e,0xeb,0x3d,0x3f,
0x3d,0x6d,0x5b,0xe3,0x25,0x5a,0xf8,0xc3
};
char *malloc();
char *pt();
main()
{
int i,j;
des_cblock in,out,outin;
des_key_schedule ks;
unsigned char cbc_in[40],cbc_out[40];
unsigned long cs;
unsigned char qret[4][4];
unsigned long lqret[4];
char *str;
printf("Doing ecb\n");
for (i=0; i<NUM_TESTS; i++)
{
if ((j=key_sched((C_Block *)(key_data[i]),ks)) != 0)
printf("Key error %2d:%d\n",i+1,j);
bcopy(plain_data[i],in,8);
bzero(out,8);
bzero(outin,8);
des_ecb_encrypt((C_Block *)in,(C_Block *)out,ks,DES_ENCRYPT);
des_ecb_encrypt((C_Block *)out,(C_Block *)outin,ks,DES_DECRYPT);
if (bcmp(out,cipher_data[i],8) != 0)
{
printf("Encryption error %2d\nk=%s p=%s o=%s act=%s\n",
i+1,pt(key_data[i]),pt(in),pt(cipher_data[i]),
pt(out));
}
if (bcmp(in,outin,8) != 0)
{
printf("Decryption error %2d\nk=%s p=%s o=%s act=%s\n",
i+1,pt(key_data[i]),pt(out),pt(in),pt(outin));
}
}
printf("Doing cbc\n");
if ((j=key_sched((C_Block *)cbc_key,ks)) != 0)
printf("Key error %2d:%d\n",i+1,j);
bzero(cbc_out,40);
bzero(cbc_in,40);
des_cbc_encrypt((C_Block *)cbc_data,(C_Block *)cbc_out,
(long)strlen(cbc_data),ks,(C_Block *)cbc_iv,DES_ENCRYPT);
if (bcmp(cbc_out,cbc_ok,32) != 0)
printf("cbc_encrypt encrypt error\n");
des_cbc_encrypt((C_Block *)cbc_out,(C_Block *)cbc_in,
(long)strlen(cbc_data),ks,(C_Block *)cbc_iv,DES_DECRYPT);
if (bcmp(cbc_in,cbc_data,32) != 0)
printf("cbc_encrypt decrypt error\n");
printf("Doing pcbc\n");
if ((j=key_sched((C_Block *)cbc_key,ks)) != 0)
printf("Key error %2d:%d\n",i+1,j);
bzero(cbc_out,40);
bzero(cbc_in,40);
des_pcbc_encrypt((C_Block *)cbc_data,(C_Block *)cbc_out,
(long)strlen(cbc_data),ks,(C_Block *)cbc_iv,DES_ENCRYPT);
if (bcmp(cbc_out,pcbc_ok,32) != 0)
printf("pcbc_encrypt encrypt error\n");
des_pcbc_encrypt((C_Block *)cbc_out,(C_Block *)cbc_in,
(long)strlen(cbc_data),ks,(C_Block *)cbc_iv,DES_DECRYPT);
if (bcmp(cbc_in,cbc_data,32) != 0)
printf("pcbc_encrypt decrypt error\n");
printf("Doing cfb\n");
key_sched((C_Block *)cfb_key,ks);
bcopy(cfb_iv,cfb_tmp,sizeof(cfb_iv));
des_cfb_encrypt(cfb_plain,cfb_buf1,8,(long)sizeof(cfb_plain),ks,
(C_Block *)cfb_tmp,DES_ENCRYPT);
if (bcmp(cfb_cipher,cfb_buf1,sizeof(cfb_buf1)) != 0)
printf("cfb_encrypt encrypt error\n");
bcopy(cfb_iv,cfb_tmp,sizeof(cfb_iv));
des_cfb_encrypt(cfb_buf1,cfb_buf2,8,(long)sizeof(cfb_buf1),ks,
(C_Block *)cfb_tmp,DES_DECRYPT);
if (bcmp(cfb_plain,cfb_buf2,sizeof(cfb_buf2)) != 0)
printf("cfb_encrypt decrypt error\n");
bcopy(cfb_iv,cfb_tmp,sizeof(cfb_iv));
for (i=0; i<sizeof(cfb_plain); i++)
des_cfb_encrypt(&(cfb_plain[i]),&(cfb_buf1[i]),
8,(long)1,ks,(C_Block *)cfb_tmp,DES_ENCRYPT);
if (bcmp(cfb_cipher,cfb_buf1,sizeof(cfb_buf1)) != 0)
printf("cfb_encrypt small encrypt error\n");
bcopy(cfb_iv,cfb_tmp,sizeof(cfb_iv));
for (i=0; i<sizeof(cfb_plain); i++)
des_cfb_encrypt(&(cfb_buf1[i]),&(cfb_buf2[i]),
8,(long)1,ks,(C_Block *)cfb_tmp,DES_DECRYPT);
if (bcmp(cfb_plain,cfb_buf2,sizeof(cfb_buf2)) != 0)
printf("cfb_encrypt small decrypt error\n");
printf("Doing ofb\n");
key_sched((C_Block *)ofb_key,ks);
bcopy(ofb_iv,ofb_tmp,sizeof(ofb_iv));
des_ofb_encrypt(ofb_plain,ofb_buf1,64,(long)sizeof(cfb_plain)/8,ks,
(C_Block *)ofb_tmp);
if (bcmp(ofb_cipher,ofb_buf1,sizeof(ofb_buf1)) != 0)
printf("ofb_encrypt encrypt error\n");
bcopy(ofb_iv,ofb_tmp,sizeof(ofb_iv));
des_ofb_encrypt(ofb_buf1,ofb_buf2,64,(long)sizeof(ofb_buf1)/8,ks,
(C_Block *)ofb_tmp);
if (bcmp(ofb_plain,ofb_buf2,sizeof(ofb_buf2)) != 0)
printf("ofb_encrypt decrypt error\n");
printf("Doing cbc_cksum\n");
des_cbc_cksum((C_Block *)cbc_data,(C_Block *)cbc_out,
(long)strlen(cbc_data),ks,(C_Block *)cbc_iv);
if (bcmp(cbc_out,cksum_ok,8) != 0)
printf("cbc_cksum error\n");
printf("Doing quad_cksum\n");
cs=quad_cksum((C_Block *)cbc_data,(C_Block *)qret,
(long)strlen(cbc_data),2,(C_Block *)cbc_iv);
for (i=0; i<4; i++)
{
lqret[i]=0;
bcopy(&(qret[i][0]),&(lqret[i]),4);
}
{ /* Big-endian fix */
static unsigned long l=1;
static unsigned char *c=(unsigned char *)&l;
unsigned long ll;
if (!c[0])
{
ll=lqret[0]^lqret[3];
lqret[0]^=ll;
lqret[3]^=ll;
ll=lqret[1]^lqret[2];
lqret[1]^=ll;
lqret[2]^=ll;
}
}
if (cs != 0x70d7a63a)
printf("quad_cksum error, ret %08x should be 70d7a63a\n",cs);
if (lqret[0] != 0x327eba8d)
printf("quad_cksum error, out[0] %08x is not %08x\n",
lqret[0],0x327eba8d);
if (lqret[1] != 0x201a49cc)
printf("quad_cksum error, out[1] %08x is not %08x\n",
lqret[1],0x201a49cc);
if (lqret[2] != 0x70d7a63a)
printf("quad_cksum error, out[2] %08x is not %08x\n",
lqret[2],0x70d7a63a);
if (lqret[3] != 0x501c2c26)
printf("quad_cksum error, out[3] %08x is not %08x\n",
lqret[3],0x501c2c26);
printf("input word alignment test");
for (i=0; i<4; i++)
{
printf(" %d",i);
des_cbc_encrypt((C_Block *)&(cbc_out[i]),(C_Block *)cbc_in,
(long)strlen(cbc_data),ks,(C_Block *)cbc_iv,
DES_ENCRYPT);
}
printf("\noutput word alignment test");
for (i=0; i<4; i++)
{
printf(" %d",i);
des_cbc_encrypt((C_Block *)cbc_out,(C_Block *)&(cbc_in[i]),
(long)strlen(cbc_data),ks,(C_Block *)cbc_iv,
DES_ENCRYPT);
}
printf("\n");
printf("fast crypt test ");
str=crypt("testing","ef");
if (strcmp("efGnQx2725bI2",str) != 0)
printf("fast crypt error, %x should be efGnQx2725bI2\n",str);
str=crypt("bca76;23","yA");
if (strcmp("yA1Rp/1hZXIJk",str) != 0)
printf("fast crypt error, %x should be yA1Rp/1hZXIJk\n",str);
printf("\n");
exit(0);
}
char *pt(p)
unsigned char *p;
{
char *ret;
int i;
static char *f="0123456789ABCDEF";
ret=(char *)malloc(17);
for (i=0; i<8; i++)
{
ret[i*2]=f[(p[i]>>4)&0xf];
ret[i*2+1]=f[p[i]&0xf];
}
ret[16]='\0';
return(ret);
}
+2 -4
View File
@@ -1,9 +1,7 @@
# from: @(#)Makefile 5.1 (Berkeley) 6/25/90
# $Id: Makefile,v 1.4 1995/09/13 17:23:44 markm Exp $
# $Id$
FILES= kparse.h krb.h krb_db.h des.h
# mit-copyright.h kadm_err.h krb_err.h
FILES= kparse.h krb.h krb_db.h
NOOBJ= noobj
NOMAN= noman
-181
View File
@@ -1,181 +0,0 @@
/* des.h */
/* Copyright (C) 1995 Eric Young ([email protected]).
* All rights reserved.
* Copyright remains Eric Young's, and as such any Copyright notices in
* the code are not to be removed.
* See the COPYRIGHT file in the libdes distribution for more details.
*/
#ifndef HEADER_DES_H
#define HEADER_DES_H
#include <stdio.h>
typedef unsigned char des_cblock[8];
typedef struct des_ks_struct { des_cblock _; } des_key_schedule[16];
#define DES_KEY_SZ (sizeof(des_cblock))
#define DES_SCHEDULE_SZ (sizeof(des_key_schedule))
#define DES_ENCRYPT 1
#define DES_DECRYPT 0
#define DES_CBC_MODE 0
#define DES_PCBC_MODE 1
#define C_Block des_cblock
#define Key_schedule des_key_schedule
#define ENCRYPT DES_ENCRYPT
#define DECRYPT DES_DECRYPT
#define KEY_SZ DES_KEY_SZ
#define string_to_key des_string_to_key
#define read_pw_string des_read_pw_string
#define random_key des_random_key
#define pcbc_encrypt des_pcbc_encrypt
#define set_key des_set_key
#define key_sched des_key_sched
#define ecb_encrypt des_ecb_encrypt
#define cbc_encrypt des_cbc_encrypt
#define ncbc_encrypt des_ncbc_encrypt
#define cbc_cksum des_cbc_cksum
#define quad_cksum des_quad_cksum
/* For compatibility with the MIT lib - eay 20/05/92 */
typedef struct des_ks_struct bit_64;
#define des_fixup_key_parity des_set_odd_parity
#define des_check_key_parity check_parity
extern int des_check_key; /* defaults to false */
extern int des_rw_mode; /* defaults to DES_PCBC_MODE */
/* The next line is used to disable full ANSI prototypes, if your
* compiler has problems with the prototypes, make sure this line always
* evaluates to true :-) */
#if defined(MSDOS) && defined(__STDC__)
#undef PROTO
#define PROTO
#endif
/* markm - dirty hack */
#define PROTO
#ifdef PROTO
int des_2ecb_encrypt(des_cblock *input,des_cblock *output,
des_key_schedule ks1,des_key_schedule ks2,int enc);
int des_3ecb_encrypt(des_cblock *input,des_cblock *output,
des_key_schedule ks1,des_key_schedule ks2, int enc);
unsigned long des_cbc_cksum(des_cblock *input,des_cblock *output,
long length,des_key_schedule schedule,des_cblock *ivec);
int des_cbc_encrypt(des_cblock *input,des_cblock *output,long length,
des_key_schedule schedule,des_cblock *ivec,int enc);
int des_ncbc_encrypt(des_cblock *input,des_cblock *output,long length,
des_key_schedule schedule,des_cblock *ivec,int enc);
int des_3cbc_encrypt(des_cblock *input,des_cblock *output,long length,
des_key_schedule sk1,des_key_schedule sk2,
des_cblock *ivec1,des_cblock *ivec2,int enc);
int des_cfb_encrypt(unsigned char *in,unsigned char *out,int numbits,
long length,des_key_schedule schedule,des_cblock *ivec,int enc);
int des_ecb_encrypt(des_cblock *input,des_cblock *output,
des_key_schedule ks,int enc);
int des_encrypt(unsigned long *input,unsigned long *output,
des_key_schedule ks, int enc);
int des_encrypt2(unsigned long *input,unsigned long *output,
des_key_schedule ks, int enc);
int des_ede3_cbc_encrypt(des_cblock *input, des_cblock *output,
long length, des_key_schedule ks1, des_key_schedule ks2,
des_key_schedule ks3, des_cblock *ivec, int enc);
int des_ede2_cbc_encrypt(des_cblock *input, des_cblock *output,
long length, des_key_schedule ks1, des_key_schedule ks2,
des_cblock *ivec, int enc);
int des_enc_read(int fd,char *buf,int len,des_key_schedule sched,
des_cblock *iv);
int des_enc_write(int fd,char *buf,int len,des_key_schedule sched,
des_cblock *iv);
#if 0
#ifdef PERL5
char *des_crypt(const char *buf,const char *salt);
#else
/* some stupid compilers complain because I have declared char instead
* of const char */
#ifdef HEADER_DES_LOCL_H
char *crypt(const char *buf,const char *salt);
#else
char *crypt();
#endif /* HEADER_DES_LOCL_H */
#endif /* PERL5 */
#endif /* 0 */
int des_ofb_encrypt(unsigned char *in,unsigned char *out,
int numbits,long length,des_key_schedule schedule,des_cblock *ivec);
int des_pcbc_encrypt(des_cblock *input,des_cblock *output,long length,
des_key_schedule schedule,des_cblock *ivec,int enc);
unsigned long des_quad_cksum(des_cblock *input,des_cblock *output,
long length,int out_count,des_cblock *seed);
void des_random_seed(des_cblock key);
int des_random_key(des_cblock ret);
int des_read_password(des_cblock *key,char *prompt,int verify);
int des_read_2passwords(des_cblock *key1,des_cblock *key2,
char *prompt,int verify);
int des_read_pw_string(char *buf,int length,char *prompt,int verify);
void des_set_odd_parity(des_cblock *key);
int des_is_weak_key(des_cblock *key);
int des_set_key(des_cblock *key,des_key_schedule schedule);
int des_key_sched(des_cblock *key,des_key_schedule schedule);
int des_string_to_key(char *str,des_cblock *key);
int des_string_to_2keys(char *str,des_cblock *key1,des_cblock *key2);
int des_cfb64_encrypt(unsigned char *in, unsigned char *out, long length,
des_key_schedule schedule, des_cblock *ivec, int *num, int enc);
int des_ofb64_encrypt(unsigned char *in, unsigned char *out, long length,
des_key_schedule schedule, des_cblock *ivec, int *num);
void des_cblock_print_file(des_cblock *cb, FILE *fp);
int des_new_random_key(des_cblock *key);
void des_init_random_number_generator(des_cblock *key);
void des_set_random_generator_seed(des_cblock *key);
void des_set_sequence_number(des_cblock new_sequence_number);
void des_generate_random_block(des_cblock *block);
#else
int des_2ecb_encrypt();
int des_3ecb_encrypt();
unsigned long des_cbc_cksum();
int des_cbc_encrypt();
int des_ncbc_encrypt();
int des_3cbc_encrypt();
int des_cfb_encrypt();
int des_ecb_encrypt();
int des_encrypt();
int des_encrypt2();
int des_ede3_cbc_encrypt();
int des_ede2_cbc_encrypt();
int des_enc_read();
int des_enc_write();
#ifdef PERL5
char *des_crypt();
#else
char *crypt();
#endif
int des_ofb_encrypt();
int des_pcbc_encrypt();
unsigned long des_quad_cksum();
void des_random_seed();
int des_random_key();
int des_read_password();
int des_read_2passwords();
int des_read_pw_string();
void des_set_odd_parity();
int des_is_weak_key();
int des_set_key();
int des_key_sched();
int des_string_to_key();
int des_string_to_2keys();
int des_cfb64_encrypt();
int des_ofb64_encrypt();
void des_cblock_print_file();
int des_new_random_key();
void des_init_random_number_generator();
void des_set_random_generator_seed();
void des_set_sequence_number();
void des_generate_random_block();
#endif
#endif
Loaded 100 of 2844 files, more files were not shown because too many files have changed in this diff. Show more