[tor-bugs] #5374 [Tor Relay]: getsockname() to check for address change failed
Tor Bug Tracker & Wiki
torproject-admin at torproject.org
Thu May 24 21:54:46 UTC 2012
#5374: getsockname() to check for address change failed
-----------------------+----------------------------------------------------
Reporter: funkstar | Owner:
Type: defect | Status: needs_review
Priority: major | Milestone: Tor: 0.2.2.x-final
Component: Tor Relay | Version: Tor: 0.2.3.12-alpha
Keywords: | Parent:
Points: | Actualpoints:
-----------------------+----------------------------------------------------
Comment(by nickm):
Shondoit confirmed my guess! Bwa ha ha!
To summarize: unlike other operating systems, when you connect() a
nonblocking socket on windows, it doesn't work if the socket isn't yet
connected.
We didn't notice on XP or Win 7, because it failed by declaring success
(!) and reporting the _bound_ address (INADDR_ANY). On Win 8, it
apparently declares failure and reports WSAEINVAL.
The lingering mysteries are:
* Using vidalia's automatic port forwarding feature suppressed the
warning -- does that make Vidalia use OutboundBindAddress?
* Why doesn't Windows know what network address you're using for a
connection until it gets a SYN ACK on the connection? Surely once the SYN
has been sent, it knows what address it sent it from.
But let's set those aside for now, since my branch should fix the issue
anyway. "bug5374" is still the one to look at.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/5374#comment:10>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list