Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Sep 2000 11:02:15 -0700 (PDT)
From:      Matt Dillon <dillon@earth.backplane.com>
To:        Paul Saab <paul@mu.org>
Cc:        Danny Braniss <danny@cs.huji.ac.il>, Mike Smith <msmith@FreeBSD.ORG>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: diskless workstation
Message-ID:  <200009201802.e8KI2Fe45459@earth.backplane.com>
References:  <E13bfhE-00015w-00@sexta.cs.huji.ac.il> <20000920093025.A53255@elvis.mu.org>

next in thread | previous in thread | raw e-mail | index | archive | help
    A quick review of the code seems to indicate that this is indeed a bug.
    As far as I can tell, the IN_CLASS*() macros assume host order.  e.g.
    from /usr/include/netinet/in.h:

    #define IN_CLASSA(i)            (((u_int32_t)(i) & 0x80000000) == 0)

    Since s_addr is in network byte order, the conversion is necessary.  If
    this fixes Danny's problems, and doesn't break anyone else (Paul?), I'd
    say it should be committed.

						-Matt

:Umm..  I'm using the netboot just fine here for the ports cluster and
:it is using the code in the tree w/ zero modifications.  It boots via
:nfs and comes up with ip, netmask, and gateway.
:
:paul
:
:Danny Braniss (danny@cs.huji.ac.il) wrote:
:> bug report:
:> 	in lib/libstand/bootp.c:
:> 
:> 	if (IN_CLASSA(myip.s_addr))
:> 		nmask = htonl(IN_CLASSA_NET);
:> 	else if (IN_CLASSB(myip.s_addr))
:> 		nmask = htonl(IN_CLASSB_NET);
:> 	else
:> 		nmask = htonl(IN_CLASSC_NET);
:> should be:
:> 
:> 	if (IN_CLASSA(ntohl(myip.s_addr)))
:> 		nmask = htonl(IN_CLASSA_NET);
:> 	else if (IN_CLASSB(ntohl(myip.s_addr)))
:> 		nmask = htonl(IN_CLASSB_NET);
:> 	else
:> 		nmask = htonl(IN_CLASSC_NET);
:> 
:> which explains why gateway was zero, even if it was provided by dhcp.
:> it also explains why it hung trying to mount via nfs.
:> 
:> 	danny


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200009201802.e8KI2Fe45459>