[MPlayer-dev-eng] [PATCH] Don't try to connect to AF_INET address with AF_INET6

Alexander Strasser eclipse7 at gmx.net
Fri Jul 12 00:22:40 CEST 2013


On 2013-07-10 23:10 +0200, Alexander Strasser wrote:
> On 2013-07-06 17:59 +0200, Erik Auerswald wrote:
> > On 07/06/2013 03:19 AM, Aaron Plattner wrote:
> > >When _BSD_SOURCE isn't defined, gethostbyname2() isn't available.  This causes
> > >HAVE_GETHOSTBYNAME2 to be undefined, making connect2Server_with_af fall back to
> > >gethostbyname(), which always returns an AF_INET address.
> > >
> > >Without a check against hp->h_addrtype, this causes the memcpy to stuff the 4
> > >bytes of the AF_INET address into the beginning of the AF_INET6 address field:
> > >
> > >  Playing http://www.facebook.com/.
> > >  Resolving www.facebook.com for AF_INET6...
> > >  Connecting to server www.facebook.com[45ab:ed14::]: 80...
> > >
> > >  Failed to connect to server with AF_INET6
> > >  Resolving www.facebook.com for AF_INET...
> > >  Connecting to server www.facebook.com[69.171.237.20]: 80...
> > >
> > >On systems with real IPv6 connections, this first connection attempt to a bogus
> > >address can take a very long time to time out.
> > 
> > I have seen this problem for some time, but have not investigated it yet.
> > 
> > >To address this problem, bail out immediately if gethostbyname() returns an
> > >address from an incompatible family.  The caller will immediately fallback to
> > >AF_INET.
> > 
> > Great! This patch works for me. No more long timeouts for wrong IPv6
> > addresses. :-)
> > 
> > Tested-by Erik Auerswald <auerswal at unix-ag.uni-kl.de>
> > 
> > @MPlayer devs: please accept this patch, it is helpful.
> 
>   Makes sense to me. I intent to apply the patch tomorrow evening.

  Applied. Thank you both for submitting and testing.

  @Erik:
  I will look at your other patch actually trying to enable the
  gethostbyname2 function at the weekend. It would be better if
  it would be enabled on systems where it is available.


  Alexander


More information about the MPlayer-dev-eng mailing list