Commit Graph

31 Commits

Author SHA1 Message Date
nectar
4ded299256 Add nsswitch support. By creating an /etc/nsswitch.conf file, you can
configure FreeBSD so that various databases such as passwd and group can be
looked up using flat files, NIS, or Hesiod.

= Hesiod has been added to libc (see hesiod(3)).

= A library routine for parsing nsswitch.conf and invoking callback
  functions as specified has been added to libc (see nsdispatch(3)).

= The following C library functions have been modified to use nsdispatch:
    . getgrent, getgrnam, getgrgid
    . getpwent, getpwnam, getpwuid
    . getusershell
    . getaddrinfo
    . gethostbyname, gethostbyname2, gethostbyaddr
    . getnetbyname, getnetbyaddr
    . getipnodebyname, getipnodebyaddr, getnodebyname, getnodebyaddr

= host.conf has been removed from src/etc.  rc.network has been modified
  to warn that host.conf is no longer used at boot time.  In addition, if
  there is a host.conf but no nsswitch.conf, the latter is created at boot
  time from the former.

Obtained from:	NetBSD
2000-09-06 18:16:48 +00:00
charnier
2f80c4c3c8 Remove incorrect section name. Incomplete -Wall cleaning. 1999-11-27 17:06:40 +00:00
peter
27eff20bc0 Fix warning: return type of main' is not int' 1999-09-15 01:58:44 +00:00
peter
b6784c4210 $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
alex
592a3d00b2 Sync usage string with reality: removed -n, added -s. 1998-12-06 16:31:47 +00:00
roberto
5e230ee6e1 Fix bug in rarpd:
Explanation of the bug: when processing its first request, rarpd
     opens a routing socket to send requests to the arp table. It keeps
     that socket open afterwards, while waiting for new RARP requests.

     Meanwhile, the data received on the routing socket fill up until
     they are about 8Kbytes in size. Any additional data is lost.

     When rarpd receives its next RARP request, it tries to access the
     ARP table via a routing socket call, then waits for the answer to
     its own request. This answer is lost because the received data is
     already filled: when looking for the reply, rarpd receives only
     8kbytes worth of data, then loops waiting forever.

     Someone please test it on -STABLE and commit it. We can close the PR
     when testing on STABLE is done.

PR:		bin/5669
Submitted by:	Pierre Beyssac <pb@fasterix.freenix.org>
1998-04-02 13:20:15 +00:00
bde
75271c7114 Removed most unused includes of <net/if_var.h> outside the kernel. 1998-01-16 17:38:56 +00:00
charnier
a02f980681 Mdoc'ify man page. 1997-10-13 11:03:36 +00:00
imp
15c4d207bc compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.
1997-03-31 05:11:47 +00:00
peter
32d6b795de Revert $FreeBSD$ to $Id$ 1997-02-22 16:15:28 +00:00
jkh
9c0cd3f9df Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
wollman
38d624cc24 Update to match changes in <net/if.h>. 1997-01-03 20:19:50 +00:00
fenner
c1c59cb58e Add -s flag to always supply mapping if known, ignoring the
presence or absence of files in /tftpboot.
1996-11-27 20:45:10 +00:00
fenner
bb50c4f8fb Make the man page reflect reality. Add BUGS section about DNS.
Logging cleanups (including logging the requestor's MAC address instead
 of the server's).
1996-11-27 20:42:09 +00:00
wpaul
74dffb94c1 Although I got rarpd to work, it was largely through kludgery. Bill
Fenner was kind enough to point out the error of my ways. This incorporates
diffs from him which:

- Keep everything in network order.
- Log the booted ether & ip address, instead of my address on that net
- change several exit()'s to return()'s, so that rarpd continues running
  even if it thinks it's in a weird state.

One small tweak by me: in rarp_bootable(), we have to make sure to
construct 'ipname' in host byte order (if we don't, we have to
specify /tftpboot/<remote IP in hex> with <remote IP in hex> in
network byte order, which is confusing).

Also restored use of <dirent.h> rather than <sys/dir.h> as pointed
out by bde.

Also updated the man page so that the -v flag is documented.

With any luck, I won't have to touch this thing again.
1996-11-19 23:57:06 +00:00
wpaul
28354771d4 Dohw! Left out one important htonl() in update_arptab().
Pointed out by: Bill Fenner
1996-11-18 23:32:55 +00:00
wpaul
3c5bbc1da6 Fix up new rarpd.
This includes the following changes:

- Support for poking ARP entries into the local table is now built
  in, so the arptab.c module I hacked together is no longer needed.

- rarp_process() and rarp_reply() now accept a len argument which is
  passed down from rarp_loop() which tells rarp_reply() exactly how
  long the original RARP frame was. (Usually, it's 60 bytes, which is
  the minimum.) Previously, the length was calculated using the sum
  of sizeof(struct ether_header) + sizeof(struct ether_arp) (plus the
  ethernet frame header, I think). The result was a total packet
  length of 42 bytes. Now, rarp_reply() sends out packets that are
  the same size as those it recieves (60 bytes). This agrees with the
  behavior of rarpd on SunOS (as observed with tcpdump). The unused
  extra bytes are zeroed.
1996-11-18 22:07:41 +00:00
wpaul
79944b4dea This commit was generated by cvs2svn to compensate for changes in r19855,
which included commits to RCS files with non-trunk default branches.
1996-11-18 21:53:21 +00:00
wpaul
11cb76e5cf Import new version of rarpd from the BPF 1.1 distribution from LBL.
Obtained from: LBL, BPF 1.1 distribution
1996-11-18 21:53:21 +00:00
bde
0350140145 Eliminated includes of the "temporary" backwards compatibility header
<sys/dir.h> in applications.  Maintained existing (inadequate) ifdefs
for dir.h vs dirent.h in libdialog, amd and rarpd, but didn't add any
new ones.
1996-09-24 08:08:11 +00:00
wpaul
a9fe8ef22d It appears that with FreeBSD-current, we need to set the ethernet
frame type in network byte order. The htons() that wasn't needed in
2.1 is now required in 2.2.

Ultimately, this rarpd should be replaced with the more recent one
supplied with the new BPF distribution.
1996-08-24 23:05:08 +00:00
mpp
029ea9012d Fix a bunch of spelling errors in a bunch of man pages. 1996-01-30 13:52:50 +00:00
peter
639da796bd recording cvs-1.6 file death 1995-12-30 19:02:48 +00:00
wpaul
9d41f986b6 Use daemon() to deamonify ourselves. 1995-07-18 21:35:32 +00:00
rgrimes
5a145b5eb1 Remove trailing whitespace. 1995-05-30 03:57:47 +00:00
wpaul
fdaab4eda6 Get rid of ether_addr.c: it's been moved to libc. Also add proper
declaration for ether_ntohost(). (Does anyone know what header file
is supposed to contain the declarations for the ether_addr functions?
I can't them in the SunOS includes anywhere.)
1995-04-02 01:35:54 +00:00
wpaul
514fddd044 Make sure we free() the result returned to us by yp_match(). 1995-03-26 02:37:00 +00:00
wpaul
6dd86a07d0 ether_addr.c:
- Implement ether_hostton()
- Implement ether_aton()
- Modify ether_aton() and ether_ntoa() to match the semantics of the
SunOS versions of these functions.
- Neaten up ether_hostton() and ether_ntohost() a little.
- Get rid of ether_print() since it isn't needed for rarpd and it isn't
documented as a standard ethers(5) function.

rarpd.8:

- Make it clear that the 'ipaddr' that rarpd looks for in /tftpboot
is actually in hexadecimal (as in /tftpboot/803B4032) since those who
are not versed in the black art of system administration are not likely
to know this.
1995-03-05 22:04:05 +00:00
bde
3d6f0ced06 Don't depend on <stdio.h> bogusly including <sys/types.h>. 1995-03-05 02:19:21 +00:00
wpaul
00121f1da7 Gave rarpd back the ability to poke temporary entries into the arp
table; arptab.c is really a hacked up version of arp.c that only
supports adding temporary entries. (This stuff is nasty -- I wish I
knew what was so wrong with SIOCSARP/SIOCGARP/etc... that made the
BSD developers decide to take it out.) The idea here is that the
client issuing the rarp is expected to be in the middle of booting
and would therefore be unable to answer arp queries from other machines
on the wire. Having rarpd stuff a temporary entry for the booting
host into the local arp table helps keep arp requests from going unanswered.

Also added ether_print() and ether_ntoa() to the ether_addr.c module.
Eventually I'll get ether_aton() and ether_hostton() written and
then this file can be dropped straight into libc. (Assuming no one
objects, of course. :)
1995-03-03 22:20:15 +00:00
wpaul
ec46f0f928 Obtained from: An old BPF release packaged with the tcpdump-2.0 source code.
"Yes Virginia, there is a rarpd."

(Before anyone asks, this *not* the rarpd from NetBSD. It did come from
the same place as theirs, however.)

This is a port of the rarpd program included with the tcpdump-2.0
source code (which I finally unearthed after scrounging around
some of the darker corners of the Internet). It's as close to the
original as I could keep it except for the following changes:

- The original program was based on an older version of the Berkeley
  Packet Filter which used different filter programming instructions.
  Fortunately, an updated RARP packet filter is available right in the
  BPF man page so this was easy to fix.

- The old code didn't know how to deal with variable length addresses
  in ifreq buffers. This has been fixed.

- Some byte order weirdness had to be fixed. The sanity checks in
  rarp_check() needed some htons()es, and the rarp_reply() function
  needed to properly set the ether_type field in the ethernet header
  to ETHERTYPE_REVARP before transmitting the packet, otherwise
  the bytes in ether_type would wind up reversed. It is important to note
  that using htons(ETHERTYPE_REVARP) will not work. This is odd, because
  the NetBSD rarpd uses htons(ETHERTYPE_REVARP). (Praise be to tcpdump:
  I would never have been able to track this silliness down without it.)

- The update_arptab() function has been castrated. It depends on
  SIOCSARP which has been deprecated in 4.4BSD. The NetBSD people
  don't seem to be using this function either. It wouldn't be too
  hard to replace this with equivalent code from arp.c, but it
  might not be necessary.

- I put together an ether_ntohost() support function that allows
  both local (/etc/ethers) and NIS lookups. This stuff should go
  in libc at some point, but nothing else seems to need it for now,
  so it can wait a while.

As you may have guessed, you need to have the Berkeley Packet Filter in
your kernel in order to use this program. The good news is that together
with the recently added bootparamd, you can use finally use a FreeBSD
box to boot Sun boxes over the network. (This was my whole motivation
for getting this stuff to work: I have this one subnet that has a whole
bunch of Sun3 X-terminals on it with only two Sun4 workstations, both
of which are locked in peoples' offices. If those two machines crash
(and they do every so often) then none of the X-terms will boot. Now I
can use a spare PC that I have as a boot server. :)
1995-03-02 06:41:40 +00:00