[erlang-questions] is inet:gethostbyname( IP ) correct?

Raimo Niskanen <>
Fri Oct 16 17:27:51 CEST 2009


On Fri, Oct 16, 2009 at 04:24:53PM +0200, info wrote:
> My idea was to analyse the return parameters because gethostbyname doesn't return "timeout".
> Who and where decides to transform an error code in timeout code ?
> I hope to escalade the problem like this ...
> John

The debug trick I showed earlier (inet_gethost_native:control({debug_level,99}))
would show the return value, but as I understood it it never
returns; it gets interrupted from inet_gethost.erl, even
if you set the timeout ridiculously high, so we have
no return value to go on...

> On Thu, Oct 15, 2009 at 03:02:40PM +0200, info wrote:
> > Dear Raimo,
> > I can resume: I discovered that gethostbyname call inet_gethost.c 
> > I don't understand inet_gethost.c :-(
> > Where "goes" this problem for finding the information ?
> > If we know where and what, we could perhaps find what is missing in my windows 2003 ...
> > Hope to read you soon !
> > John
> 
> Well, there is not much more to say. inet_gethost.c calls
> struct hostent *gethostbyname(const char *name) in the 
> winsock2 library:
>   http://msdn.microsoft.com/en-us/library/ms738524(VS.85).aspx
> It never returns.
> It is deprecated but that does not mean broken.
> I have a Windows 2003 server that it works on.
> We have not found the reason it differs between
> my server and your server.
> And that is about it.
> 
> 
> > 
> > On Wed, Oct 14, 2009 at 03:34:12PM +0200, info wrote:
> >  > For me this function always returns {error,timeout} and I didn't find the reason even with the help of Raimo Niskanen !
> > 
> > Sorry about that, but your problem became a just too spooky
> > Windows 2003 problem and that is not really my turf, and
> > you seemed to have a possible workaround through inet_res.
> > But it has been on my todo list to have a second look
> > at the whole conversation when I could find the time...
> > 
> >  > 
> >  > 
> >  > At the end of my last mail you have the references.
> >  > Regards,
> >  > 
> >  > Roberto Aloi
> >  > Erlang Training and Consulting Ltd.
> >  > http://www.erlang-consulting.com
> >  > http://aloiroberto.wordpress.com
> >  > 
> >  > Robert Raschke wrote:
> >  >   > This is part of the IP address spec (not sure where to look to find it,
> >  >   > though). I've seen addresses specified like this on and off in various
> >  >   > locations on a wide variety of OSes, for example in a /etc/hosts file you
> >  >   > can write:
> >  >   >
> >  >   > localhost  127.1
> >  >   >
> >  >   > Robby
> >  >   >
> >  >   > On Tue, Oct 13, 2009 at 8:06 PM, caio ariede    <   > wrote:
> >  >   >
> >  >   >   
> >  >   >   > Interesting case.
> >  >   >   >
> >  >   >   > The result doesn't appear to be an issue, but a feature of the
> >  >   >   > gethostbyname
> >  >   >   > original implementation, in C code.
> >  >   >   >
> >  >   >   > You get the same result, testing with PHP:
> >  >   >   >
> >  >   >   > $ php -r 'var_dump(gethostbyname("12.27"));'
> >  >   >   > string(9) "12.0.0.27"
> >  >   >   >
> >  >   >   > And other interesting results:
> >  >   >   >
> >  >   >   > $ php -r 'var_dump(gethostbyname("255.2.256"));'
> >  >   >   > string(9) "255.2.1.0"
> >  >   >   >
> >  >   >   > But I can't see where it's really useful.
> >  >   >   >
> >  >   >   > Caio Ariede
> >  >   >   > http://caioariede.com/
> >  >   >   >
> >  >   >   >
> >  >   >   > On Tue, Oct 13, 2009 at 3:15 PM, Garry Hodgson    <
> >  >   >   >     
> >  >   >   >   > wrote:
> >  >   >   >   >       
> >  >   >   >   > recently, a bug in my code caused us to pass a string
> >  >   >   >   > representing a floating point number to inet:gethostbyname().
> >  >   >   >   > i would have expected it to return an error, but instead it
> >  >   >   >   > returned an ip address, but one that made no sense to me:
> >  >   >   >   >
> >  >   >   >   > 1   > inet:gethostbyname( '12.27' ).
> >  >   >   >   > {ok,{hostent,"12.27",[],inet,4,[{12,0,0,27}]}}
> >  >   >   >   >
> >  >   >   >   > so my question is, is this behavior correct, and if so, what
> >  >   >   >   > exactly does it mean that a lookup of '12.27' maps to '12.0.0.27'?
> >  >   >   >   >
> >  >   >   >   > thanks
> >  >   >   >   >
> >  >   >   >   > --
> >  >   >   >   > Garry Hodgson
> >  >   >   >   > Lead Member of Technical Staff
> >  >   >   >   > AT&T Chief Security Office (CSO)
> >  >   >   >   >
> >  >   >   >   > "This e-mail and any files transmitted with it are AT&T property, are
> >  >   >   >   > confidential, and are intended solely for the use of the individual or
> >  >   >   >   > entity to whom this e-mail is addressed. If you are not one of the named
> >  >   >   >   > recipient(s) or otherwise have reason to believe that you have received
> >  >   >   >   >       
> >  >   >   > this
> >  >   >   >     
> >  >   >   >   > message in error, please notify the sender and delete this message
> >  >   >   >   > immediately from your computer. Any other use, retention, dissemination,
> >  >   >   >   > forwarding, printing, or copying of this e-mail is strictly prohibited."
> >  >   >   >   >
> >  >   >   >   > ________________________________________________________________
> >  >   >   >   > erlang-questions mailing list. See http://www.erlang.org/faq.html
> >  >   >   >   > erlang-questions (at) erlang.org
> >  >   >   >   >
> >  >   >   >   >
> >  >   >   >   >       
> >  >   >
> >  >   >   
> >  > 
> >  > 
> >  > ________________________________________________________________
> >  > erlang-questions mailing list. See http://www.erlang.org/faq.html
> >  > erlang-questions (at) erlang.org
> > 
> > -- 
> > 
> > / Raimo Niskanen, Erlang/OTP, Ericsson AB
> > 
> > ________________________________________________________________
> > erlang-questions mailing list. See http://www.erlang.org/faq.html
> > erlang-questions (at) erlang.org
> 
> -- 
> 
> / Raimo Niskanen, Erlang/OTP, Ericsson AB

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB


More information about the erlang-questions mailing list