[Pidgin] #8853: Cannot connect to Yahoo - "connection refused" error

Pidgin trac at pidgin.im
Fri Apr 24 02:08:30 EDT 2009


#8853: Cannot connect to Yahoo - "connection refused" error
--------------------------------------+-------------------------------------
 Reporter:  christophermerkel         |        Owner:  marv  
     Type:  defect                    |       Status:  new   
Milestone:                            |    Component:  Yahoo!
  Version:  2.5.5                     |   Resolution:        
 Keywords:  connection refused error  |  
--------------------------------------+-------------------------------------

Comment(by nerddtvg):

 No matter the reason the servers are having problems, I think it is a
 problem inside libpurple.

 http://google.com/codesearch/p?hl=en#7OEMyONFOOA/pidgin-2.0.0beta7/libpurple/dnsquery.c&q=purple_dnsquery_a%20package:pidgin&l=836

 Newest revision:
 http://developer.pidgin.im/viewmtn/revision/file/e54933232e44b0c259cee6eff8f9354e6b94fe5d/libpurple/dnsquery.c

 gethostbyname() returns a structure that can contain a list of addresses
 [h_addr_list] (for DNS round-robin load balancing) as well a single entry
 that is the first entry in the list as h_addr. According to this
 [http://linux.die.net/man/3/gethostbyname MAN Page] it is for backwards
 compatability. However, I think that libpurple needs to take this list
 into account as it is there for fall-back purposes and the library is
 ignoring that.

 Now that first link goes to the non-Win32 function used, but the same
 problem occurs in Windows in the dns_thread() function in the same file.
 It may only happen if HAVE_GETADDRINFO is false as I can't confirm if
 libpurple's use of getaddrinfo might break it either.

 A similar patch (#2930) has been proposed allowing people to specify
 multiple servers in the account settings. This shows that something needs
 to be done about fall-back choices and we should by default use DNS
 information that we are given for that purpose.

 Of course, I could be completely wrong here (which happens a lot) so I'm
 sorry if I am. I would attempt to patch this myself and test it but I just
 don't have the time for several weeks. If I do get some extra time, I may
 just run some tests using the base code from libpurple to simulate what
 happens but I can't promise it.

 As a side note, hitting Reconnect doesn't work for me as the addresses are
 cached and the first address returned on the list is going to be the same
 until that list is updated, so Pidgin would still use the same bad server
 to connect to. I have to flush my DNS several times before it will get a
 new server.

-- 
Ticket URL: <http://developer.pidgin.im/ticket/8853#comment:48>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list