Subject: Re: Bind to local iface: bug or feautre.
To: Assar Westerlund <assar@sics.se>
From: Jesus M. Gonzalez <jgb@gsyc.inf.uc3m.es>
List: tech-net
Date: 11/26/1996 12:31:16
Assar Westerlund writes:
 > "Jesus M. Gonzalez" <jgb@gsyc.inf.uc3m.es> writes:

 > > 	NetBSD returns an error when binding an UDP address where
 > > the host address matchs a local iface (instead of the more used
 > > INADDR_ANY). I'm not familar with the networking code,
 > > and I'm not sure if this is a bug or a feature... Could somebody
 > > tell me, so that I send-pr it if it is a bug?
 > 
 > It's not a bug, or perhaps it is.  The sockaddr_in needs to zeroed out
 > because a bit-by-bit comparison is done in `in_pcbbind' with
 > `ifa_ifwithaddr'

	Thanks, Assar. I went to the sources, and yeah, there is it.
I has a look at Stevens' book, and I saw the comment regarding the
zeroing of the sockaddr_in. But I wonder if this shouln't be changed
(fixed). Since all teh code is in a INET-dependent section, shouldn't
the comparasion be made just between the host_addr parts of the
involved sockaddr_ins? This is what seems to be done in Linux (though
the code is quite different). And anyway, it's rather surprising
that you don't need to zero the sockaddr_in if you use INADDR_ANY,
but you *need* to if you use any other address...

	Any more opoinions about this being a bug? (Just to be
sure of your opinion before filing a PR).

		Jesus.
-- 
Jesus M. Gonzalez Barahona         | addr.:  c/ Butarque, 15
Grupo de Sistemas y Comunicaciones |         28911 Leganes, Spain
Departamento de Informatica        | tel: +34 1 624 94 58
Universidad Carlos III de Madrid   | fax: +34 1 624 94 30
e-mail: jgb@gsyc.inf.uc3m.es       | www: http://ordago.gsyc.inf.uc3m.es/~jgb