Fixed last commit: can only check for bound sockets, not for unbound. There's some work to do for IPv6 in TCP...

This commit is contained in:
sg 2015-02-26 21:31:48 +01:00
parent a6a92d42f9
commit 0d1606ff23

View File

@ -593,17 +593,14 @@ tcp_listen_dual_with_backlog(struct tcp_pcb *pcb, u8_t backlog)
struct tcp_pcb *lpcb;
struct tcp_pcb_listen *l;
/* Dual listen only works on bound pcbs (or else we cannot check for
duplicate port use. */
if (pcb->local_port == 0) {
return NULL;
}
/* Check that there's noone listening on this port already
(don't check the IP address since we'll set it to ANY */
for(l = tcp_listen_pcbs.listen_pcbs; l != NULL; l = l->next) {
if (l->local_port == pcb->local_port) {
/* this port is already used */
return NULL;
if (pcb->local_port != 0) {
/* Check that there's noone listening on this port already
(don't check the IP address since we'll set it to ANY */
for(l = tcp_listen_pcbs.listen_pcbs; l != NULL; l = l->next) {
if (l->local_port == pcb->local_port) {
/* this port is already used */
return NULL;
}
}
}