summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2008-07-10 05:21:10 +0200
committerMichael Brown2008-07-10 05:21:10 +0200
commit21e9e801e268302cf2705d9b0e658f9896963fe0 (patch)
treef89968893adfa0d5041225d1256d11aab24a0f36
parent[dhcp] Verify DHCP server source port (diff)
downloadipxe-21e9e801e268302cf2705d9b0e658f9896963fe0.tar.gz
ipxe-21e9e801e268302cf2705d9b0e658f9896963fe0.tar.xz
ipxe-21e9e801e268302cf2705d9b0e658f9896963fe0.zip
[udp] Avoid reusing auto-allocated ports after connection close.
This duplicates a fix made to tcp.c in commit d5735c631cf26d8e1bcf7b5e635623b52d6b48aa.
-rw-r--r--src/net/udp.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/net/udp.c b/src/net/udp.c
index 8df76a44..407ea14d 100644
--- a/src/net/udp.c
+++ b/src/net/udp.c
@@ -55,11 +55,12 @@ struct tcpip_protocol udp_protocol;
*/
static int udp_bind ( struct udp_connection *udp ) {
struct udp_connection *existing;
- static uint16_t try_port = 1024;
+ static uint16_t try_port = 1023;
/* If no port specified, find the first available port */
if ( ! udp->local.st_port ) {
- for ( ; try_port ; try_port++ ) {
+ while ( try_port ) {
+ try_port++;
if ( try_port < 1024 )
continue;
udp->local.st_port = htons ( try_port );