[comp.protocols.tcp-ip] Is there a bug in SunOS 3.4's route program?

robert@SPAM.ISTC.SRI.COM (Robert Allen) (01/06/89)

	While testing gated over a synchronous serial link running HDLC
    between a Sun 3/75 (running SunOS 3.4) and an HP 330 (running HP-UX 6.01),
    I've discovered what appears to be a bug in the program "route" on the
    Sun.  I'm hoping that somone can authoritativly confirm or deny that this
    is a bug, and help me with my dilemma.

			Here is the hardware situation
			------------------------------
	HP 330			sync serial line	Sun 3/75
	hdlc0 = 192.100.1.1  <========================> zss0 = 192.100.1.2

	On the HP I type "add route 192.100.1.0 192.100.1.1 0".  The result
    I get from a netstat -r -n is "192.100.1 192.100.1.1 U"

	On the Sun I type "add route 192.100.1.0 192.100.1.2 0". The result
    I get from a netstat -r -n is "192.100.1 192.100.1.2 UH".  Note that
    the route is shown as being a HOST route, not a network route.  This is
    wrong.

	In order to try and figure out why this was happening, I took the src
    to route.c on the Sun (sccsid = 1.1 86/02/05 SMI, from UCB 4.8 83/08/21)
    which we have, and put in some printf statements.  Note that I believe
    this src may be for 3.2, not 3.4 which I'm running on my Sun.

	I discovered several things which surprised me:

	(1) gethostbyname() now seems to take decimal dot notation in addition
	to human-readable names.

	(2) using the a.out (on the Sun) created by compiling my `instrumented'
	route.c file, I can execute the "route add" command mentioned above and
	end up with a network route ("192.100.1 192.100.1.1 U") as I desire and
	expect.  This route can also be deleted by using the a.out.

	(3) The correct network route added on the Sun via a.out, CANNOT be
	removed by the route command, returning a "not in table" diagnostic.
	The two binaries, route and a.out, do not produce compatible table
	entries when given the same input.

	After adding the network route on the Sun via a.out and on the HP
    via route, I can telnet across the link as I would expect.

	This tells me that I either have some bad "route" binaries floating
    around, or a bug/feature was introduced in the 3.4 SunOS version of route.

	In closing, I have two questions:
	(1) why does gethostbyname take decimal dot notation now in addition to
	names (is it because we're using yellow pages?)?

	(2) Why is the route binary behaving differently, and erroneously at
	that, than a binary compiled from the src?

    Thanks in advance for any help,

    Robert Allen
    robert@spam.istc.sri.com
    415-859-2143