Statistics: Posted by ESP_Faye — Mon Aug 03, 2015 1:48 pm
Statistics: Posted by owendelong — Sat Aug 01, 2015 1:11 am
Statistics: Posted by ESP_Faye — Fri Jul 31, 2015 7:15 pm
Code:
/**
* Allocate a new local TCP port.
*
* @return a new (free) local TCP port number
*/
static u16_t
tcp_new_port(void)
{
u8_t i;
u16_t n = 0;
struct tcp_pcb *pcb;
again:
if (tcp_port++ == TCP_LOCAL_PORT_RANGE_END) {
tcp_port = TCP_LOCAL_PORT_RANGE_START;
}
/* Check all PCB lists. */
for (i = 0; i < NUM_TCP_PCB_LISTS; i++) {
for(pcb = *tcp_pcb_lists[i]; pcb != NULL; pcb = pcb->next) {
if (pcb->local_port == tcp_port) {
if (++n > (TCP_LOCAL_PORT_RANGE_END - TCP_LOCAL_PORT_RANGE_START)) {
return 0;
}
goto again;
}
}
}
return tcp_port;
}
Code:
again:
if (tcp_port++ == TCP_LOCAL_PORT_RANGE_END) {
tcp_port = TCP_LOCAL_PORT_RANGE_START;
}
Code:
tcp_port = random_port_number();
again:
if (tcp_port++ == TCP_LOCAL_PORT_RANGE_END) {
tcp_port = TCP_LOCAL_PORT_RANGE_START;
}
Code:
uint16_t random_port_number()
{
static bool seeded;
if (! seeded)
{
randomSeed(analogReed(A0));
seeded=true;
}
return(random(TCP_LOCAL_PORT_RANGE_START, TCP_LOCAL_PORT_RANGE_END));
}
Statistics: Posted by owendelong — Fri Jul 31, 2015 12:01 am