[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