Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Sep 2002 00:32:11 -0700
From:      Jim Pirzyk <jim@pirzyk.org>
To:        freebsd-net@freebsd.org
Subject:   getnetbyname broken for DNS case?
Message-ID:  <200209180032.11590.jim@pirzyk.org>

next in thread | raw e-mail | index | archive | help
Hi,

I am trying to debug a problem that I have with /etc/exports.  I cannot
put in the symbolic name for my network (10.26.0.0) without putting it
in /etc/networks.  It is currently in DNS, but it looks like the getnetbyname
is not working correctly for the DNS case.  

The functions that are broken is _getnetbydnsname() and getnetanswer().
The _getnetbydnsname() is easily fixed by changing T_PTR to T_A
in res_query(), but getnetanswer() is harder to solve.  It is not parsing the
format of the result correctly.  First I had to put some code in to
test "type" being T_PTR only if "net_i" is set to BYADDR and T_A if "net_i"
is set to BYNAME.  

When I go into the res_hnok() test, it is assumed by the code that
it IP address is in ascii format, which it is not (it is in network binary 
order).  If I remove the res_hnok() test, then it does not load the 
netent.n_net address correctly.

The code is broken for both -CURRENT and -STABLE.

So my question is then, can I rewrite getnetbyname() to use gethostbyname() 
call and massage the result to a netent entry?  This would  solve the DNS 
result parsing problem and would also get us T_AAA (IPv6) network name 
addresses.  I would also implement getnetbyaddr() in terms of gethostbyaddr() 
too.

- JimP

--- @(#) $Id: dot.signature,v 1.10 2001/05/17 23:38:49 Jim.Pirzyk Exp $
    __o   jim@pirzyk.org -----------------------------------------------
 _'\<,_    
(*)/ (*)  


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




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