Commit Graph

2436 Commits

Author SHA1 Message Date
Alfred Perlstein
95b9973991 Deal with lack of IPv6 support gracefully.
Submitted by: Martin Blapp <mb@imp.ch>
2001-03-25 19:57:58 +00:00
Alfred Perlstein
12d6e650c6 fix -o port=xxx 2001-03-25 19:18:43 +00:00
Ollivier Robert
ed873335b7 Respect style(9), one must not include both <sys/types.h> and
<sys/param.h> (the latter includes the former).

Submitted by:	bde
2001-03-22 13:19:32 +00:00
Alfred Perlstein
9eb8ec95f4 Include headers to unbreak world.
Submitted by: Ollivier Robert <roberto@eurocontrol.fr>
2001-03-21 20:30:35 +00:00
Kirk McKusick
7578c6ab98 Additions to run checks on live filesystems. This change will not
affect current systems until fsck is modified to use these new
facilities. To try out this change, set the fsck passno to zero
in /etc/fstab to cause the filesystem to be mounted without running
fsck, then run `fsck_ffs -p -B <filesystem>' after the system has
been brought up multiuser to run a background cleanup on <filesystem>.
Note that the <filesystem> in question must have soft updates enabled.
2001-03-21 09:48:03 +00:00
Ruslan Ermilov
c73e22c3d4 Set the default manual section for usr.sbin/ to 8. 2001-03-20 18:17:26 +00:00
Ruslan Ermilov
fe655281c5 Set the default manual section for sbin/ to 8. 2001-03-20 18:13:31 +00:00
Ian Dowse
85ae580ccb Reboot(8) normally waits 5 seconds after sending SIGTERMs to all
processes and then sends SIGKILLs. If a lot of processes are swapped
out, this delay may not be long enough, so processes such as an X
server may be killed before they have had time to clean up properly.

Make this delay more dynamic by waiting up to 60 seconds for swap
page-in activity to end. While I'm here, ANSIfy and remove a
`register' specifier.
2001-03-20 17:22:48 +00:00
Ruslan Ermilov
a24add3fb3 mdoc(7) police: fixes to the previous revision:
- fixed bad formatting
- avoid using German
- removed hard sentence break
2001-03-20 10:57:25 +00:00
Alfred Perlstein
8360efbd6c Bring in a hybrid of SunSoft's transport-independent RPC (TI-RPC) and
associated changes that had to happen to make this possible as well as
bugs fixed along the way.

  Bring in required TLI library routines to support this.

  Since we don't support TLI we've essentially copied what NetBSD
  has done, adding a thin layer to emulate direct the TLI calls
  into BSD socket calls.

  This is mostly from Sun's tirpc release that was made in 1994,
  however some fixes were backported from the 1999 release (supposedly
  only made available after this porting effort was underway).

  The submitter has agreed to continue on and bring us up to the
  1999 release.

  Several key features are introduced with this update:
    Client calls are thread safe. (1999 code has server side thread
    safe)
    Updated, a more modern interface.

  Many userland updates were done to bring the code up to par with
  the recent RPC API.

  There is an update to the pthreads library, a function
  pthread_main_np() was added to emulate a function of Sun's threads
  library.

  While we're at it, bring in NetBSD's lockd, it's been far too
  long of a wait.

  New rpcbind(8) replaces portmap(8) (supporting communication over
  an authenticated Unix-domain socket, and by default only allowing
  set and unset requests over that channel). It's much more secure
  than the old portmapper.

  Umount(8), mountd(8), mount_nfs(8), nfsd(8) have also been upgraded
  to support TI-RPC and to support IPV6.

  Umount(8) is also fixed to unmount pathnames longer than 80 chars,
  which are currently truncated by the Kernel statfs structure.

Submitted by: Martin Blapp <mb@imp.ch>
Manpage review: ru
Secure RPC implemented by: wpaul
2001-03-19 12:50:13 +00:00
Ruslan Ermilov
fe997d964c Fix minor mdoc(7) and spelling nits. 2001-03-19 08:20:34 +00:00
Søren Schmidt
29ad98da92 Activate atacontrol 2001-03-19 07:59:38 +00:00
Søren Schmidt
69658f3595 Some minor cleanups to the code, no new functionality. 2001-03-19 07:58:47 +00:00
Søren Schmidt
3ec5a2774f Incorporate most of Ruslans changes plus minor addtion by me 2001-03-19 07:57:25 +00:00
Hajimu UMEMOTO
e3a50e99c6 Correct typo in usage.
Submitted by:	David Malone <dwmalone@maths.tcd.ie>
2001-03-18 18:45:43 +00:00
Ruslan Ermilov
e1a85079e7 It is the ``nostrictjoliet'' option equivalent to -b.
Reviewed by:	bp
2001-03-16 12:55:54 +00:00
Warner Losh
ab820341c1 Back out ru's changes. Soren has requested this and I see no reason
to not just do it.  It is his new code that is being actively
developed so he has say over it.  ru's direct changes were premature
as they occurred less than 4 hours after it was committed to the tree.
2001-03-16 08:07:00 +00:00
Ruslan Ermilov
7350bb3af1 mdoc(7) police: removed hard sentence break introduced in rev 1.82. 2001-03-16 07:39:46 +00:00
Dima Dorfman
32de505213 Explain that TCP fragments with an offset of 1 are reported as being
dropped by rule -1 if logging is enabled.

PR:		25796
Submitted by:	Crist J. Clark <cjclark@alum.mit.edu>
Approved by:	nik
2001-03-16 01:28:11 +00:00
Ruslan Ermilov
905a2385bf Make this compile with ${BDECFLAGS}, apply style(9), cleanup manpage. 2001-03-15 19:28:58 +00:00
Søren Schmidt
6ad7a0b6f2 Add atacontrol, a util to control variuos aspects of the ATA.4 driver,
please consult atacontrol.8 for usage..
2001-03-15 15:40:53 +00:00
Ruslan Ermilov
3832aecacb mdoc(7) police: add a missing An call. 2001-03-12 09:18:12 +00:00
Boris Popov
8c602ed981 Update userland interface for broken Joilet disks.
Reviewed by:	adrian
2001-03-11 10:06:28 +00:00
Maxim Sobolev
ed23a390c2 In the absence of explicit `-t type'' option assume that `-f file''
implies ``-t vnode''.

Approved by:	phk
2001-03-09 21:15:08 +00:00
Poul-Henning Kamp
e10469fef8 Make md(4) and mdconfig(8) take over the role of vn(4) and vnconfig(8)
entirely as previously advertised.

md(4) adopted all assets of vn(4) some time back and has proper devfs
support and cloning abilities to boot.
2001-03-09 20:09:28 +00:00
Poul-Henning Kamp
83da2a90ae 1) If mdconfig isn't given an action argument, it assumes detach.
2) Running `mdconfig -l` without any attached devices results in
mdconfig printing "md0" to standard output.

Submitted by:	dd [1]

[1] no, not "dd(1)" but "Dima Dorfman"
2001-03-09 20:05:06 +00:00
Ruslan Ermilov
211bfbd228 Add new option -m which allows the user to set IP TTL. 2001-03-09 13:20:23 +00:00
David E. O'Brien
ff7405adba bye-bye documented raw devices 2001-03-09 13:06:53 +00:00
David E. O'Brien
02344806db bye-bye documented raw device 2001-03-09 13:06:09 +00:00
David E. O'Brien
8454c72c24 Move _PATH_DEFTAPE to <paths.h> to remove all the duplication of definitons,
and remove leading `r'(aw) from it.
2001-03-08 09:04:40 +00:00
Dag-Erling Smørgrav
867dd03869 Restore the -c option, which was accidentally removed from the getopt
string two revisions ago.
2001-03-06 01:58:30 +00:00
Ruslan Ermilov
7733674e31 mdoc(7) police: misc formatting fixes.
(This page still needs a lot of work.)
2001-03-05 15:33:54 +00:00
Warner Losh
8d3105e8d4 First attempt to not overflow in disk space calculations. Use off_t
for the size variable used to calculate the size of the partition.
Also use ULL suffix for constants to ensure that we use 64 bit math.
2001-03-05 03:39:57 +00:00
David E. O'Brien
9a901d972d Fix style nit. 2001-03-04 13:19:51 +00:00
Kris Kennaway
b5bc4b5cb2 Correct grammar in comment. 2001-03-04 07:14:11 +00:00
David E. O'Brien
801382fa98 Support inheritance of the "nodump" flag down a hierarchy.
Submitted by:	Dima Dorfman <dima@unixfreak.org>
Obtained from:	NetBSD
2001-03-03 11:35:50 +00:00
Jeroen Ruigrok van der Werven
8a8d42eebb Fix typo present since 1997: single used mode -> single user mode. 2001-03-03 08:12:58 +00:00
David E. O'Brien
1d9153d7ad Use _PATH_DEV.
Reviewed by:	grog
2001-02-28 17:50:29 +00:00
Ruslan Ermilov
c2d03ea879 Eliminate mdocNG warnings caused by misplaced or extraneous macro calls. 2001-02-28 17:38:53 +00:00
Poul-Henning Kamp
3f6f92161c Remove "autounit" from settable options, it's the default unless you
specify -u.

Spotted by:	dcs
2001-02-26 15:31:47 +00:00
Ruslan Ermilov
f806cd425e Backout -a restriction hack.
Requested by:	rwatson
2001-02-26 08:09:51 +00:00
John W. De Boskey
3233afaec7 Allow for easier configuration when using disklabel. A sample
being:

#        size   offset    fstype   [fsize bsize bps/cpg]
  a:   400M        0    4.2BSD     4096 16384    75     # (Cyl.    0 - 812*)
  b:     1G        *      swap
  c:      *        *    unused
  e: 204800        *    4.2BSD
  f:     5g        *    4.2BSD
  g:      *        *    4.2BSD

   These patches are the original work of Randell Jesup, and
I believe Matt Dillon, with additional work by Warner Losh.
Please let me know if I've left someone out.

   Incorporated into this is the fix for PR bin/22727.

   This patchset still has style issues and a possible problem on
large disks. However, it was a agreed to get these committed before
performing major surgery on them.

PR:		bin/22727
Submitted by:	Randell Jesup <rjesup@wgate.com>
2001-02-25 16:47:44 +00:00
Poul-Henning Kamp
a69134f24c Forgot to remove unneeded "intcmp" function. 2001-02-25 13:14:41 +00:00
Poul-Henning Kamp
174b5e9aec Make "md" and "mdctl" macroized parameters.
Implement "-l" option to mdconfig which can list one or all md devices.

Submitted by:   Dima Dorfman <dima@unixfreak.org>
2001-02-25 13:12:57 +00:00
Poul-Henning Kamp
57e9624ec9 Make md/mdconfig do kld.
Submitted by:	dcs
2001-02-24 16:26:41 +00:00
Ruslan Ermilov
b52c326cfc Restrict -a to root only.
PR:		bin/25337
2001-02-24 10:16:54 +00:00
Paul Saab
6afb6d0aa9 Elminate common declaration.
Reviewed by:	peter
2001-02-22 21:53:39 +00:00
Hajimu UMEMOTO
650d202dbd some reasoning why we separated ping(8) and ping6(8)
comments/additions/corrections are welcome.

Obtained from:	KAME
2001-02-22 19:00:51 +00:00
Nik Clayton
3ae0515eec Mention the edquota(8) utility when talking about editing quota.user
and quota.group.

PR:		docs/25124
2001-02-22 11:07:58 +00:00
Ruslan Ermilov
dc60ef4a4e Document that the IPFW messages are logged via syslogd(8). 2001-02-22 09:12:44 +00:00
Hajimu UMEMOTO
bf8a1b099f if no address is setted, do not call ioctl(SIOCAIFADDR)
Obtained from:	KAME
2001-02-21 18:15:18 +00:00
Alfred Perlstein
729d4f1db0 Fix vinum for both devfs and non-devfs systems.
userland tool:

  Use the vfs.devfs.generation sysctl to test for devfs presense
  (thanks phk!) when devfs is active it will not try to create the
  device nodes in /dev and therefore will not complain about the
  failure to do so.

  Revert the change in the #define for VINUM_DIR in the kernel
  header so that vinum can find its device nodes.

  Replace perror() with vinum_perror() to print file/line when
  DEVBUG is defined (not defined by default).

kernel:

  Don't use the #define names for the "superdev" creation since
  they will be prepended by "/dev/" (based on VINUM_DIR), instead
  use string constants.

  Create both debug and non-debug "superdev" nodes in the devfs.

Problem noticed and fix tested by: Martin Blapp <mblapp@fuchur.lan.attic.ch>
2001-02-20 22:07:36 +00:00
Brian Feldman
c0511d3b58 Switch to using a struct xucred instead of a struct xucred when not
actually in the kernel.  This structure is a different size than
what is currently in -CURRENT, but should hopefully be the last time
any application breakage is caused there.  As soon as any major
inconveniences are removed, the definition of the in-kernel struct
ucred should be conditionalized upon defined(_KERNEL).

This also changes struct export_args to remove dependency on the
constantly-changing struct ucred, as well as limiting the bounds
of the size fields to the correct size.  This means: a) mountd and
friends won't break all the time, b) mountd and friends won't crash
the kernel all the time if they don't know what they're doing wrt
actual struct export_args layout.

Reviewed by:	bde
2001-02-18 13:30:20 +00:00
Jeroen Ruigrok van der Werven
7c63796828 Preceed/preceeding are not english words. Use precede or preceding. 2001-02-18 10:25:42 +00:00
Dag-Erling Smørgrav
4c98f36d94 Document the new -k option in usage message and man page. 2001-02-16 16:28:36 +00:00
Dag-Erling Smørgrav
532c19016b Add a -k option that prevents clearing the dump after saving it.
Use sysctlbyname() instead of sysctl().

Clear up and simplify the version extraction code.

Attempt to detect stretches of zeroes in the dump and avoid writing
them to disk to save space and time.
2001-02-16 16:27:32 +00:00
Yoshihiro Takahashi
7f77ae5795 Added pc98 support.
Submitted by:	Akio Morita <amorita@meadow.scphys.kyoto-u.ac.jp>
2001-02-16 13:30:27 +00:00
Tor Egge
a46d9bce72 Don't allow special devices of type NODEV (NOUDEV as seen from kernel).
They can't be created via mknod and the kernel crashes if it encounters
such an inode.
Approved by:	mckusick
2001-02-15 22:26:21 +00:00
Ruslan Ermilov
d4339464da mdoc(7) police: normalize the construct. 2001-02-15 08:36:20 +00:00
Sheldon Hearn
63ca8f4ad1 Fix grammar nit in previous commit. 2001-02-14 15:03:20 +00:00
Poul-Henning Kamp
bb07ec8c84 Introduce a new feature in IPFW: Check of the source or destination
address is configured on a interface.  This is useful for routers with
dynamic interfaces.  It is now possible to say:

        0100 allow       tcp from any to any established
        0200 skipto 1000 tcp from any to any
        0300 allow       ip from any to any
        1000 allow       tcp from 1.2.3.4 to me 22
        1010 deny        tcp from any to me 22
        1020 allow       tcp from any to any

and not have to worry about the behaviour if dynamic interfaces configure
new IP numbers later on.

The check is semi expensive (traverses the interface address list)
so it should be protected as in the above example if high performance
is a requirement.
2001-02-13 14:12:37 +00:00
Ruslan Ermilov
47dec78170 mdoc(7) police: use the default ``file ...'' feature of the .Ar macro. 2001-02-13 09:56:35 +00:00
Nik Clayton
8684bec007 Use ".Nm fsck_ffs", so that this turns up in whatis(1), and others.
Add .Xr to fsck.

Prompted by:	JM Jr's script that shows binaries with no whatis info
Reviewed by:	adrian
2001-02-12 17:50:14 +00:00
Poul-Henning Kamp
421b0201ed Fix a cosmetic problem with some very defensive programming: The devfs
mount would show up as "/dev/", loose that trailing slash.
2001-02-08 22:07:08 +00:00
Ruslan Ermilov
46eea498da mdoc(7) police: Change -filled displays (which just happen
to be the same as -ragged in the current implementation) to
-ragged.  With mdocNG, -filled displays produce the correct
output, formatted and justified to both margins.
2001-02-07 13:45:30 +00:00
Jeroen Ruigrok van der Werven
9a01d32bfd Fix typo: seperate -> separate.
Seperate does not exist in the english language.

Submitted to look at by:	kris
2001-02-06 10:39:38 +00:00
Dan Moschuk
51ab799576 mount a --> mount an
PR: 24842
Submitted by: Rich Morin <rdm@cfcl.com>
2001-02-04 18:05:21 +00:00
Nik Clayton
01c78dbb09 Add an xref for mount_ntfs.
PR:             docs/24693
Submitted by:   Etienne Vidal <hallik@libertysurf.fr>
2001-02-02 03:08:48 +00:00
Ruslan Ermilov
610a5778c5 mdoc(7) police: split punctuation characters + misc fixes. 2001-02-01 16:44:04 +00:00
Ruslan Ermilov
d0353b836e mdoc(7) police: split punctuation characters + misc fixes. 2001-02-01 16:38:02 +00:00
Ian Dowse
16241a05dd Fsck_ffs did not properly range-check the inode 'di_size'
field, so it was possible for a filesystem marked clean by fsck_ffs
to cause kernel crashes later when mounted. This could occur when
fsck_ffs was used to repair a badly corrupted filesystem.

As pointed out by bde, it is not sufficient to restrict di_size to
just the superblock fs_maxfilesize limit. The use of 32-bit logical
block numbers (both in fsck and the kernel) induces another file
size limit which is usually lower than fs_maxfilesize. Also, the
old 4.3BSD filesystem does not have fs_maxfilesize initialised.

Following this change, fsck_ffs will enforce exactly the same
file size limits as are used by the kernel.

PR:		kern/15065
Discussed with:	bde
Reviewed by:	bde, mckusick
2001-01-31 15:16:56 +00:00
Poul-Henning Kamp
fb1023d670 Strip optional prefixes "/dev/" and "md" from the -u argument. 2001-01-31 08:41:18 +00:00
Poul-Henning Kamp
7cf109c1b4 Make mount_mfs annoy users for 15 seconds and point them at mdconfig(8). 2001-01-30 10:21:20 +00:00
Ben Smithurst
e50fa3d247 Fix 'tunefs -p'
Reviewed by:	sheldonh
2001-01-29 11:00:16 +00:00
Poul-Henning Kamp
941ee63274 Use <sys/queue.h> instead of home-rolled list.
Submitted by:	"Jason Smethers" <jsmethers@pdq.net>
2001-01-29 09:45:51 +00:00
Poul-Henning Kamp
bfa0b2984d Use \a instead of \007 for making noise.
Submitted by:	"Jason Smethers" <jsmethers@pdq.net>
2001-01-28 21:21:37 +00:00
Poul-Henning Kamp
3b42f2f3bb Duh, the version of mdconfig.c I committed came from the wrong machine.
Commit the right version, but without the -b option which is too evil
for the present.

Remove -b and preload from the manpage as well.
2001-01-28 20:17:46 +00:00
Poul-Henning Kamp
353f4b3966 Don't specify fragment size, it autosizes from the sectorsize.
Remember to set mode 1777 on /tmp

Submitted by:	mjacob
2001-01-28 20:03:02 +00:00
Brian S. Dean
f59091e7cd Print out the target device when the mount fails. 2001-01-25 20:05:34 +00:00
Brian S. Dean
20ee96993b Always print out the target device when the mount fails, not just on
ENOENT.
2001-01-25 20:03:38 +00:00
Brian S. Dean
a04ea1b860 Provide a better error message when the /dev entry is non-existant.
Due to the old message, I spent way more time debugging a diskless
root problem than it should have taken.
2001-01-25 17:29:07 +00:00
Kris Kennaway
1b2556e4a4 Fix the vulnerability with TCP ECE packets recently fixed in ipfw.
This is untested, but believed to work.
2001-01-23 21:11:28 +00:00
Hajimu UMEMOTO
e26aac8d24 avoid conflicting #define symbol (s/FW_IFNLEN/IP6&/).
Obtained from:	KAME
2001-01-22 19:20:06 +00:00
Ben Smithurst
23dafeaced mdoc police.
Submitted by:	ru
2001-01-22 18:37:51 +00:00
Ruslan Ermilov
5501231a13 man(7) -> mdoc(7). 2001-01-22 17:44:36 +00:00
Hajimu UMEMOTO
dd9d139453 Room to hold rules should be dynamically allocated.
PR:		kern/24248
2001-01-20 22:40:39 +00:00
Ben Smithurst
b112c02bc6 Add 'netrange' parameter to 'range' command and fix a couple of typos.
PR:		23984
Submitted by:	Jimmy Olgeni <olgeni@uli.it>
2001-01-20 21:37:37 +00:00
Bruce Evans
3b9a046dbe Removed unused copy of ../mount/getmtopts.3.
Removed used copies of ../mount/getmntopts.c ../mount/mntopts.h.  Use the
versions in ../mount directly like all other mount utilities.

Removed used copy of ../mount/pathnames.h.  Use the version in ../mount
for free as a side effect of using the mntopts files there.  We should
not use it at all, since the 2/3 of the definitions in it are in <paths.h>
and the other 1/3 should be in ../mountd/pathnames.h and is not used by
mount_ifs anyway.
2001-01-17 04:10:06 +00:00
Bruce Evans
6e3d19c8ff Removed unused rotting copy of ../mount/mount.8. It should never have
been repo-copied.
2001-01-17 03:39:53 +00:00
Ruslan Ermilov
9884911506 mdoc(7) police: fixed broken references. 2001-01-16 11:52:00 +00:00
Ruslan Ermilov
896eb7d10c Prepare for mdoc(7)NG. 2001-01-16 09:15:57 +00:00
Greg Lehey
458b6188cb Fix typo.
Submitted by:	Jimmy Olgeni <olgeni@uli.it>
PR:		24233

Fix typos.

Submitted by:	"Jeroen C. van Gelderen" <jeroen@vangelderen.org>
2001-01-15 22:15:05 +00:00
Ian Dowse
f55ff3f3ef The ffs superblock includes a 128-byte region for use by temporary
in-core pointers to summary information. An array in this region
(fs_csp) could overflow on filesystems with a very large number of
cylinder groups (~16000 on i386 with 8k blocks). When this happens,
other fields in the superblock get corrupted, and fsck refuses to
check the filesystem.

Solve this problem by replacing the fs_csp array in 'struct fs'
with a single pointer, and add padding to keep the length of the
128-byte region fixed. Update the kernel and userland utilities
to use just this single pointer.

With this change, the kernel no longer makes use of the superblock
fields 'fs_csshift' and 'fs_csmask'. Add a comment to newfs/mkfs.c
to indicate that these fields must be calculated for compatibility
with older kernels.

Reviewed by:	mckusick
2001-01-15 18:30:40 +00:00
Poul-Henning Kamp
3a36e32d8c Add a couple of newlines in the output from route monitor 2001-01-15 12:28:48 +00:00
Eivind Eklund
10185bdc57 Replace reference to replacing mkfs(8) with a paragraph actually
describing what newfs *does*.
2001-01-15 03:13:26 +00:00
Dag-Erling Smørgrav
0ef56fd857 Document the -N option in the usage message and the man page. 2001-01-14 19:08:58 +00:00
Dag-Erling Smørgrav
ca5fac557f Add a -N option that makes sysctl(8) print out just the variable names.
Zsh users can add the following to their .zshrc for sysctl completion:

function listsysctls {
    case $1 in
    *.*) set -A reply $(sysctl -AN ${1%.*}) ;;
    *) set -A reply $(sysctl -AN) ;;
    esac
}
compctl -K listsysctls sysctl

While I'm here, brucify the getopt() switch.
2001-01-14 16:40:06 +00:00
Greg Lehey
8b075ef933 Remove references to lockinfo.plex.
Reported by: 	dougb
2001-01-14 11:42:19 +00:00
Ruslan Ermilov
739cdd4baa Mdoc(7)ify. 2001-01-10 14:53:46 +00:00
Robert Watson
65450f2f77 o IPFW incorrectly handled filtering in the presence of previously
reserved and now allocated TCP flags in incoming packets.  This patch
  stops overloading those bits in the IP firewall rules, and moves
  colliding flags to a seperate field, ipflg.  The IPFW userland
  management tool, ipfw(8), is updated to reflect this change.  New TCP
  flags related to ECN are now included in tcp.h for reference, although
  we don't currently implement TCP+ECN.

o To use this fix without completely rebuilding, it is sufficient to copy
  ip_fw.h and tcp.h into your appropriate include directory, then rebuild
  the ipfw kernel module, and ipfw tool, and install both.  Note that a
  mismatch between module and userland tool will result in incorrect
  installation of firewall rules that may have unexpected effects.  This
  is an MFC candidate, following shakedown.  This bug does not appear
  to affect ipfilter.

Reviewed by:	security-officer, billf
Reported by:	Aragon Gouveia <aragon@phat.za.net>
2001-01-09 03:10:30 +00:00