Closed GoogleCodeExporter closed 9 years ago
This sounds like a problem with your DNS server, but we should give better
errors. Any chance you could use
wireshark to grab the related DNS queries? You can attach the dump file here.
Original comment by hil...@gmail.com
on 24 Jun 2008 at 1:53
Hi,
I have attached capture. You will the see the query is "class IN". The problem
with
DNS doesn't explain the second issue where I'm trying to specify NetworkHost
property. It looks like the .NET code has issues processing "talk.l.google.com".
Original comment by ivan.p...@gmail.com
on 24 Jun 2008 at 4:29
Attachments:
[deleted comment]
I'm still not able to understand what is the issue with DNS. But if we put this
aside, I think there is an issue with "SocketStanzaStream.Connect" method. It
initializes a new object type "bedrock.net.Address" with 2 parameters: hostname
and
port. So hostname parameter is set to "Hostname" property, which internally is
processed by calling "IPAddress.Parse" method. The problem is that provided
parameter
is not IP adress like 209.85.163.125, but "talk.l.google.com" and the
"IPAddress.Parse" method obviously fails when used with this. Even the name
"hostname" makes me assume it is not ip address but a host name which has to be
resolved into ip address first.
Original comment by ivan.p...@gmail.com
on 24 Jun 2008 at 7:55
Btw I'm running the code on Windows XP. Could it be that your code is working on
Windows Vista and it is not tested on Windows XP ?
Original comment by ivan.p...@gmail.com
on 24 Jun 2008 at 7:58
One more additional information. I have found the code, which resolves host
name into
IP address. But it is still failing inside
"bedrock.net.AsyncSocket.OnConnectResolved" method, when it calls
"m_sock.BeginConnect" method below. The error with which it fails is
"WSAEOPNOTSUPP
10045" - Operation not supported. When I use the JabberClient with "NetworkHost"
property set to the IP address, then it finally works. But using host name
doesn't work.
Original comment by ivan.p...@gmail.com
on 24 Jun 2008 at 9:57
I'm running XP here. The fact that nslookup doesn't work is what makes me
think the problem is your DNS
server. There are a *lot* of bad DNS servers out there. Try using "dig" from
a Linux or OSX box:
% dig +short -t SRV _xmpp-client._tcp.gmail.com.
5 0 5222 talk.l.google.com.
20 0 5222 talk1.l.google.com.
20 0 5222 talk2.l.google.com.
20 0 5222 talk3.l.google.com.
20 0 5222 talk4.l.google.com.
What I'm seeing in your pcap seems to confirm this. You're sending out a valid
request, and getting a
response that says there are no records. With NetworkHost set, I bet you're
getting an error because there is
no A record being returned. If you wanted to send me the pcap for the A record
lookup, we could confirm
that.
As a work-around, try setting the NetworkHost to 72.14.253.125.
As well, try using head of subversion. I tried using an invalid hostname on
head, and it fired the correct error.
Original comment by hil...@gmail.com
on 24 Jun 2008 at 10:05
Wha? WSAEOPNOTSUPP means you're trying to listen on a UDP socket, or do
MSG_OOB. Neither of which I'm
doing.
Uh... have you tried rebooting? :)
Original comment by hil...@gmail.com
on 24 Jun 2008 at 10:08
I have tried the "dig" command and it returned:
;; connection timed out; no servers could be reached
Regarding the second issue, I rebooted and the issue is still there, so there
must be
something going on. I have verified the ErrorCode and it is 10045.
The thing that is bothering me is that I don't have issues whatsoever with the
standard Google Talk client. Should I try another client like PSI? Any other
suggestion?
Original comment by ivan.p...@gmail.com
on 25 Jun 2008 at 2:37
The GoogleTalk client likely has an internal fallback to a specific IP address
if DNS doesn't work. They can do
that since they are tied to a particular service, and don't have to talk to
other servers.
I bet if you do a wireshark trace of that client starting up, you'll see the
same DNS queries, failing the exact
same way.
Original comment by hil...@gmail.com
on 25 Jun 2008 at 2:58
Okay. I have upgraded my router and now it is able to retrieve the SRV records
properly. The problem with error 10045 (WSAEOPNOTSUPP) is still there. I have
tested
the PSI client and it works fine. Another problem I'm seeing is that the
exception is
happening in another thread (the async communication) and I'm unable to catch
it and
the whole application is failing. I will investigate the code and see if I'm
able to
find something.
Original comment by ivan.p...@gmail.com
on 25 Jun 2008 at 5:09
I don't if this will help, but the code fails in
"System.Net.Sockets.Socket.ConnectEx" when it calls
UnsafeNclNativeMethods.OSSOCK.WSAIoctl.
Original comment by ivan.p...@gmail.com
on 25 Jun 2008 at 5:53
Finally I have fixed the second issue. It looks like I had some kind of Winsock
corruption. You may find this discussion useful:
http://forums.msdn.microsoft.com/en-US/netfxnetcom/thread/687d9379-924a-48c3-9a0
1-0f22805c3c9b/
And also this KB from MS was what resolved the issue for me:
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B811259
Probably it would be a good idea to include information about this in the FAQ
because
it appears other people have experienced problems with sockets used in
asynchronous
scenarios. It was usually related to winsock been corrupted by firewalls like
McAfee
and Norton.
Original comment by ivan.p...@gmail.com
on 25 Jun 2008 at 6:51
So, was the gist that you did:
netsh winsock reset
and everything worked fine? If that's the case, yes, I'll just write an FAQ
entry and close this ticket.
Original comment by hil...@gmail.com
on 25 Jun 2008 at 9:41
At the KB link I have sent you there is a "Guided Help" application, which I
have
executed. It did remove and reinstall the TCPIP protocol support. And it now
works
properly.
Original comment by ivan.p...@gmail.com
on 25 Jun 2008 at 9:47
OK, new wiki page here: http://code.google.com/p/jabber-net/wiki/SocketErrors
We'll collect other oddnesses there over time.
Original comment by hil...@gmail.com
on 25 Jun 2008 at 10:06
Original issue reported on code.google.com by
ivan.p...@gmail.com
on 24 Jun 2008 at 8:38