[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