Submitted by: Mike Mitchell, supervisor@alb.asctmd.com
This is a bulk mport of Mike's IPX/SPX protocol stacks and all the
related gunf that goes with it..
it is not guaranteed to work 100% correctly at this time
but as we had several people trying to work on it
I figured it would be better to get it checked in so
they could all get teh same thing to work on..
Mikes been using it for a year or so
but on 2.0
more changes and stuff will be merged in from other developers now that this is in.
Mike Mitchell, Network Engineer
AMTECH Systems Corporation, Technology and Manufacturing
8600 Jefferson Street, Albuquerque, New Mexico 87113 (505) 856-8000
supervisor@alb.asctmd.com
Make a link from boot_${ARCH}.8 to boot.8, so people will get what
they expect when asking "man boot".
I think David will lynch me when i'm requesting this to go into 2.1... :-)
to return ECHILD, which causes the while loop to run forever.
(eg: when accidently running nfsiod on a slow system with a kernel
without NFS support...)
Obtained from: NetBSD; Frank van den Linden <frank@struis.fwi.uva.nl>
current unit number, and the "new" unit number of -1. This allows the
script to actually deconfigure the SLIP interface (e.g. by running
"ifconfig delete") which has been impossible previously.
This is most likely a candidate for 2.1, too.
slattach always exited early because fd is not open in acquire_line().
Other (trivial) changes that I've been neglecting for some time:
- Turn off O_NONBLOCK so that `chat' doesn't need to worry about it
(`chat' actually does worry about it).
- Really set speeds POSIXly :-). cfsetspeed() isn't POSIX.
- Fix spelling error in comment.
- Gripe about bad programming of doing everything from signal handlers.
slattach should be written to do everything from the sigsuspend() loop,
but I don't want to do it :-).
From me:
Use .PATH to find uucplock.c
Submitted by: bde
-K #: set SLIP keepalive timeout
-O #: set SLIP outfil timeout
-U #: set SLIP unit number
sighup handler now sets tty disc for non-redial case too.
Implement SIGURG handling (from keepalive).
POSIXing speed settings.
-K: set keepalive SLIP timeout
-O: set outfill SLIP timeout
Handle SIGURG from keepalive like SIGHUP now, i.e. reconnect.
Back out background scription change, cause some synchro problems.
Now works with dialin devices too.
Add new option in slattach style -l: dont use modem control.
Add new option -W: specify max number of dial tries for one phone.
Remove -p option, this ugly hack not needed.
Fix script timeout expires.
Some code cleanups.
Add -t to specify login script timeout.
Add -w to specify retry wait time.
Describe -p option.
Now understand several -s sections (for several host phone numbers).
Remove -F sw (software flow control), it is impossible with slip.
Change -F hw (hardware flow control) option to -h as in slattach,
we don't need option with argument for only one case.
Call downscript on SIGTERM.
Improve debug diagnostic.
Allow startslip work with several slip lines without killing each other.
Unlink pid file on exit.
Skip \r and \0 in login script parsing instead making them \n.
Use absolute path to default script (/sbin/ifconfig).
Call up/down script in background to prevent hang on them.
understand why it can become a null pointer under some circumstances,
but i've got a pile of tapes where this happens, and running it thru a
debugger proved that simply ending the loop in this case did the right
thing.
Anyway, it cannot make it worse than now, where restore kills itself
with "Memory fault".
/dev/rfoo0d.
Scan a list of devices instead of insisting on all the world
being wd0.
Allow for disk names to be specified (e.g. `sd0') instead of full
path names only.
Sync the man page with the reality.
from not coming up multiuser just because you have a CD mount in fstab
but no CD in the drive.
Submitted by: "Full Name Not Supplied" <simon@masi.ibp.fr>
- getnetgrent.c: address some NIS compatibility problems. We really need
to use the netgroup.byuser and netgroup.byhost maps to speed up innetgr()
when using NIS. Also, change the NIS interaction in the following way:
If /etc/netgroup does not exist or is empty (or contains only the
NIS '+' token), we now use NIS exclusively. This lets us use the
'reverse netgroup' maps and is more or less the behavior of other
platforms.
If /etc/netgroup exists and contains local netgroup data (but no '+').
we use only lthe local stuff and ignore NIS.
If /etc/netgroup exists and contains both local data and the '+',
we use the local data nd the netgroup map as a single combined
database (which, unfortunately, can be slow when the netgroup
database is large). This is what we have been doing up until now.
Head off a potential NULL pointer dereference in the old innetgr()
matching code.
Also fix the way the NIS netgroup map is incorporated into things:
adding the '+' is supposed to make it seem as though the netgroup
database is 'inserted' wherever the '+' is placed. We didn't quite
do it that way before.
(The NetBSD people apparently use a real, honest-to-gosh, netgroup.db
database that works just like the password database. This is
actually a neat idea since netgroups is the sort of thing that
can really benefit from having multi-key search capability,
particularly since reverse lookups require more than a trivial
amount of processing. Should we do something like this too?)
- netgroup.5: document all this stuff.
- rcmd.c: some sleuthing with some test programs linked with my own
version of innetgr() has revealed that SunOS always passes the NIS
domain name to innetgr() in the 'domain' argument. We might as well
do the same (if YP is defined).
- ether_addr.c: also fix the NIS interaction so that placing the
'+' token in the /etc/ethers file makes it seem like the NIS
ethers data is 'inserted' at that point. (Chances are nobody will
notice the effect of this change, which is just te way I like it. :)
1024 that used to remain on a line of its own after savecore completed
its job will be overwritten later in the /etc/rc process.
Reviewed by:
Submitted by: graichen@sirius.physik.fu-berlin.de (Thomas Graichen)
Obtained from:
fclosed twice and this didn't seem to cause any problems, but when
/var/crash was on an an unwritable nfs-mounted partition, fclose(NULL)
caused a core dump.
The version 2 support has been tested (client+server) against FreeBSD-2.0,
IRIX 5.3 and FreeBSD-current (using a loopback mount). The version 2 support
is stable AFAIK.
The version 3 support has been tested with a loopback mount and minimally
against an IRIX 5.3 server. It needs more testing and may have problems.
I have patched amd to support the new variable length filehandles although
it will still only use version 2 of the protocol.
Before booting a kernel with these changes, nfs clients will need to at least
build and install /usr/sbin/mount_nfs. Servers will need to build and
install /usr/sbin/mountd.
NFS diskless support is untested.
Obtained from: Rick Macklem <rick@snowhite.cis.uoguelph.ca>
parameters are. You can use dumpfs, but that's not obvious which settings
are tuneable, and is far from clear to the non-guru (it's like using a
hexdump of a tar archive to get a table-of-contents).
There is also an undocumented option in the man page that can be dangerous.
Suppose your disk driver decides to scramble all writes while you tell
tunefs to update all backup superblocks.
This suggested change adds a '-p' (print) switch to bring it in
line with some SVR4 systems.
(Slightly changed by me, mostly for optics. - joerg)
Submitted by: peter@haywire.dialix.com
claims multiple times to have failed. The problem is a off_t is
converted into a int and checked for a negative. A true lseek check
should be checking if the off_t is equal to -1 for failure.
(Suggested fix from PR #bin/461)
Submitted by: mark tinguely <tinguely@opus.cs.ndsu.NoDak.edu>
now safely add a line like
ldconfig -m ${PREFIX}/lib
in ports' Makefiles and packing lists without throwing away some
directories the user may have added.
Submitted by: Mostly by Paul Kranenburg <pk@cs.few.eur.nl>
quotacheck -a will fail after the first partition (because
dev_bsize is 512 and is messes up the superblock read of the second
partition)
Submitted by: dillon@best.com (Mattew Dillon)
when the single user shell was terminated. These changes disallow mounting
or R/W upgrading filesystems that are dirty unless "-f" (force) option
is used with mount. /etc/rc has been modified to abort the startup if
one or more non-nfs partitions fail to mount.
Reviewed by: Poul-Henning Kamp, Rod Grimes
- in mount_portal.c: included catching of SIGHUP to get portald to
re-read the config file.
- in mount_portal.c: in SIGCHLD handler the return values checked from
waitpid were wrong. Note. this routine was written correclty according
to the manual page for 4.4BSD, but waitpid does not exhibit this
behaviour. It is not returning 0 when WNOHANG is specified. I havent
checked this properly.
- in mount_portal.c: initialized the fdset for the select properly.
- in mount_portal.c: corrected poor casting in the select.
- in mount_portal.c: changed a break; to exit (0); so that the
children die after doing the hard work, this stops the select: bad
file descriptor messages.
- in pt_file.c: the kernel passes kernel style open flags to the
portal code which aren't compatible with "normal" O_ flags. I have
adjusted these in pt_file.c. In general I think the portal fs code
and portal_cred structure need changing to pass to the portald
the right style of flags _and_ the permissions.
- in pt_tcp.c: a few mistakes in typing of the socket structures,
getservbyname returns the port number as an int but sockaddr wants
the port number as an u_short.
- in pt_tcp.c: someone wrote this on a VAX/Sun whatever and forget
about byte ordering!! I've included a few htons about the place.
- in all the above I have sprinkled a few more debugging printf's.
Submitted by: "Duncan McL Barclay" <dmlb@ohm.york.ac.uk
in a couple of cases, and it doesn't do much anyway. It used to save only
the newfs params (block/frag/cgroup.. and nothing more. Something that
don't belong in a disklabel in the first place.
to open the mounted block device containing the directory to put the bad
sector files in, and opening of mounted block devices hasn't been allowed
since Net/2 or before. Attempt to open the raw device instead. Be more
careful about long names.
Use lstat() instead of stat() to search for block devices so that my
symlink to the default floppy doesn't cause problems.
Check for truncation of the block number when it is squeezed through the
mknod() interface. The maximum used to be only 32767, but now it large
enough.
you to push the same host into its NFS export lists twice, but mountd
tries to do it anyway. This means that putting:
/some_file_system -ro host1 host1
in your /etc/exports file causes an error. This is bogus: mountd should be
smart enough to ignore the second instance of host1. This can be a problem
in some configurations that use netgroups. For example, each host in my
netgroups database is has two entries:
startide (startide,-,) (startide.ctr.columbia.edu,-,)
When mountd sees this, it tries to put startide.ctr.columbia.edu into the
export list *twice*. Just listing 'startide' /etc/exports list will also
screw up because mountd will try to resolve the netgroup 'startide' instead
of the hostname 'startide.'
My solution is watch for duplicate entries in get_host() and mark them
as grouptype GT_IGNORE, which do_mount() will now cheefully throw away.
This is a bit of a kludge, but it was the least obtrusive fix I could
come up with.
Also silenced a compiler warning: arguments passwd to xdr_long() should
be u_long, not int. :)
in the man page. ifconfig -au affects all interfaces marked as up,
and ifconfig -ad affects only the interfaces marked down. ifconfig -a
still handles everything. This change is purely for compatibility with
SunOS, for those who might be accustomed to the SunOS ifconfig's
behavior.
established. This way, automatic scripts are possible that might
control the SLIP connection. It's unacceptable for a daemon that's
being controlled by a variety of signals to not leave its PID
somewhere. The file name contains the terminal path name component of
the associated tty device, so it should be unique even with multiple
parallel slattach's running. The file will be unlinked at regular exit.
Also found a minor bug in the option handling by compiling with -Wall.
is a pain in ...wel.. trying to fix this
* from/to/via position indepenndant syntax
* "any" for 0/0 host address
* addf/addb default keyword in case you skip it..
* pass = accept new action, seems to be somewhat better
in particular cases
* on = via (as on ed0 instead of via ed0,loook at
reject tcp on ed0 from hacker )
the values that it doesn't print by defaults. This seems wrong. I want
to be able to see the total number of sectors more than edit it. The
default d_secperunit of (sectors/track * tracks/cylinder * cylinders) is
bogus if sectors/track is only an approximation and more bogus if
sectors/track and tracks/cylinder are dummy values such as 4096 and 1
to defeat ufs's pessimizations.
via sysctl(8). The initial value of maxprocperuid is maxproc-1,
that of maxfilesperproc is maxfiles (untill maxfile will disappear)
Now it is at least possible to prohibit one user opening maxfiles
-Guido
Submitted by:
Obtained from:
ports for the destination IP addr/port.
Nobody reported this btw , while a lot of other things reported-
probably ppl does not use destination ports at all????
We pretend we have one head with two megabyte worth of sectors per cylinder.
The code try to access another head in what it belives to the same
physical cylinder, because it belives that it would be faster than
waiting for the next free sector under this head to come around.
Most modern drives doesn't have a "classical" geometry, and thus
we end up fooling ourselves doing the above optimization. With this
change we will fill a cylinder sequentially if we can, and thus get
much more mileage from the track-buffer/cache built into the drives.
As a result a lot of seeks to the next or previous track should be
avoided by this.
(My disk is a lot less noisy actually...)
You can still get the old behaviour, by specifying zero for the
numbers.
This will also solve the problem with newfs barfing at really big
drives.
Obtained from: adult advice from Kirk.
Include bteasy, bootsd, sdboot and termcap entries using file2.c
Remove all traces of "termcap.small".
The policy in this program regarding termcap is:
| If $TERM is set
| do nothing special, rely on usual termcap.
| else
| use compiled in (via file2c) termcap entries
misfeature caused troubles when a program attempted to access a shlib
where one with a higher minor number has been hashed. Ldconfig does
only include the highest-numbered shlib anyway, so this is in no way a
limitation of generality.
Caution: after installing the new programs, your /var/run/ld.so.hints
needs to be rebuiult; run ldconfig again as it's done from /etc/rc.
We have only one firewall chain and one accounting chain now.
No blocking/forwarding so commands changed.
Man pages are somewhat out of date and will be updated ASAP.
- The -a flag now works just as it does in SunOS: '-a' is actually
handled like a wildcard for all interfaces. 'ifconfig -a' displays
the status of all interfaces, 'ifconfig -a netmask 0xffffff00' sets
the netmask of all interfaces, and so forth. I don't know if many
people really need to be able to set the netmasks of all interfaces
at once, but the SunOS ifconfig seems to allow this, so there you
have it.
- An 'ether_status' function has been added to display the ethernet
address of all ethernet interfaces. Again, as in SunOS, you must
be root in order for this to work. The ethernet address is read
from /dev/kmem using kvm_open() and kvm_read(), much in the same
was as it's done with netstat. If you choose to install ifconfig
set-gid kmem then normal users will be able to see the ethernet
address as well, though this may not be desireable. This feature
requires a small change to the ifconfig Makefile: you need to link
with -lkvm in order to use the kvm_*() functions.
Submitted by: wpaul
warning handling and allows for link-time warnings with a modified
version of gas.
Note: Not all of the newer bits were updated such as some of the non-x86
machine-dependant code is relevant to FreeBSD right now.
Obtained from: NetBSD
determine whether a connection to a given machine is up or not.
In FreeBSD 2.0 (and therefore, I assume, BSD 4.4) the exit code of ping
is always zero, even if no packets were received.
I would like to propose the following change to /usr/src/sbin/ping/ping.c
to restore this useful behaviour:
Submitted by: Denis Fortin
a decimal value.
I don't have the time to deal with users typing in partition names
such as "FreeBSD" at the moment so just allow the numerical id to be
specified for the moment.
Could do with some cosmetic tuning regarding placement and things.
Fixed some dialog code (from Andrew).
Pass mountpoints onto stage2 in a struct fstab *mounts[]
Fix all the field connections to conform to the new L&F document.
Removed a layer of menus.
Auto select partition to install into -- first FreeBSD partition
in MBR table. Abort if no FreeBSD partition.
Added a F_BUTTON type.
Fixed up label editor to show free space properly.
Fixed a few bugs.
2. See if swapon() failed and at least print a diagnostic.
3. Use -1 instead of strheight()/strwidth() everywhere.
Reviewed by:
Submitted by:
Obtained from:
that the english in Ugen's two replacement pages is not too impenetrable! :-)
[Note: Poul - please pull these into the BETA branch along with the
other firewall changes]
Submitted by: ugen
struct lfs.
sovs@diku.dk:
The pad2 field in struct lfs is a kludge. You
need it because the raw devices has to be written in DEV_BSIZE. The
lfs_maxsymlinklen is needed because the tells the UFS code that we
want to use 4.4BSD directory layout insted of FreeBSD 1.1.5.
Reviewed by: Justin Gibbs
Submitted by: sovs@diku.dk
1. Don't use kernel name for headers - I'm running 2.0.1-Development,
not ALPHA, and this messes things up.
2. The last dialog was too big, make it a little smaller. Just cosmetic,
while I'm in here.
main.c sanitize the logic of what we do when:
if(getpid()!=1) do stage0 & stage1 (very useful actually)
else if (floppy-marker-file is there) stage0-2, reboot
else stage3-5
have to write the text-file it will dump on you.
Stopped using cleartoeol in AskEm(), just as a test to see if the screen
looks more sane.
Added a attempted auto-recognition of /, swap and /usr for the first disk
where it looks sensible. Logic of this might need to be improved.
Made a "ShowFile()" which will not bomb/ignore you if the file isn't there.
/sbin/umount does not return the correct exit status due to incorrect
logic in its internals.
Further, because of the nature of the code, you *cannot* use it to
umount a directory from a union mountpoint. Well, you can sometimes,
it depends on if the directory is at the top of the union stack or not :)
Submitted by: njw@cs.city.ac.uk (Nick Williams)
Make a stab at getting free space display to work.
Forward decls to shut compiler warnings up.
Increase some fields to width 2 in order to get edit_line to let you
actually edit them.
Sanity check values and yell at bonehead users.
Try to reformat this code to be a little more human. Weird europeans
have been writing this, and can't even seem to agree a single coding
style for more than 4 consecutive lines! :-)
most common cd9660 and nfs options like God intended them. (It is now
possible to say
mount -o ro,soft,bg,intr there:/foo/bar /foo/bar
again.) This whole getmntopt() business is an incredible botch;
it never should have been anything more than a wrapper around
getsubopt(3). Because if the way the current hackaround is implemented,
options which take arguments (like the old `rsize' and `wsize') are still
unavailable, and must be accessed the new, broken way.
(It's unimaginable how Berkeley managed to screw up one of the few things
about NFS that Sun actually got right to begin with!)
I have walked all over Paul Richards code again, and severely lobotomized
some of his stuff, in order to cut some corners for the 2.0-Alpha release.
I belive that we can now manipulate fdisk and disklabel-stuff sufficiently
for the release to actually be produced.
It's not that I don't like Paul and his code, I just need something I
can kick out of the door RSN.
Sysinstall is now under absolute code-freeze, only Jordan has my permission
to commit to this code (stage0 & 5). I would appreciate if everybody
else would finds problems in sysinstall send patches to me, and I will
commit them. THANKYOU.
The fdisk/disklabel editors are made in pure ncurses, and follow a model
"a`la spreadsheet".
There are some important functions which are missing still, and I would
appreciate if somebody would look at them.
The FDISK part needs a "whole-disk" option, and it needs a "rewrite
MBR-boot code" option.
The DISKLABEL part needs to be able to "import DOS-partition".
Both need a "HELP" function, (display a file "/HELP" using dialog is OK).
It seems to me like the wd.c and sd.c should reread the physical record
when a DIOCGDINFO is made, so that they can pick up changes in the
MBR-data. Otherwise there will be a couple of weird cases where we
cannot avoid replicating code from the kernel.
If you want to play with this, look at src/release/Makefile. You may need
to step back to version 1.38 of sys/i386/isa/fd.c to make "rootable"
floppies, it is not clear at this time if that indeed is the problem I
have been having.
Sleep well, my friends, and expect the real Alpha in 24H, if the tree is
still solid.
Removed a dialog_clear() which somebody aimlessly had slammed into TellEm()
in absence of any understanding of the structure of this program. :-(
Skip through stage0 for now.
Make write_bootblocks write the disklabel using the kernel-call, and forget
about the boot-blocks for now. This is wrong, but I havn't found the real
problem yet. I will continue work on this problem.
Added a Debug-feature. There is a printf' like Debug() now which sends its
output to ttyv1 (Alt-F2), and all "discarded output" from sub-processes end
up there too. Made TellEm() put it's messages there also, so that we can
see where what happens.
Set the PATH for the shell we shouldn't start at the end :-)
set "npartitions" after the disklabel-editor returns, so that we actually
can edit all the 8 parts of the label.