[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [task #6995] Implement SO_REUSEADDR
From: |
Simon Goldschmidt |
Subject: |
[lwip-devel] [task #6995] Implement SO_REUSEADDR |
Date: |
Sat, 15 May 2010 17:15:50 +0000 |
User-agent: |
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 |
Update of task #6995 (project lwip):
Status: In Progress => Done
Percent Complete: 90% => 100%
Open/Closed: Open => Closed
_______________________________________________________
Follow-up Comment #9:
> What remains is that for multicast/broadcast, received data
> would have to be duplicated so that all (UDP-)PCBs listening on
> the same port get a copy of the data.
Done. Added an extra option SO_REUSE_RXTOALL for that as it is kind of slow
(traverses the full udp_pcbs list a 2nd time for every broadcast/multicast
packet received).
Also, for full SO_REUSEADDR support, I had to add a 5-tuple-uniqueness-check
in tcp_connect() and tcp_listen().
The 3rd change was to allow binding multiple listening pcbs to the same port
by allowing IP_ADDR_ANY and specific IPs (e.g. IP of every netif) and then in
tcp_input(), first searching for a specific match and only if that fails
passing the SYN packet to the IP_ADDR_ANY-listening pcb.
All this only changed with SO_REUSE==1 (which is still off by default), so
doesn't have a negative impact for those who don't use it.
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/task/?6995>
_______________________________________________
Nachricht geschickt von/durch Savannah
http://savannah.nongnu.org/