summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorRobin Getz <rgetz@blackfin.uclinux.org>2010-03-08 14:07:00 -0500
committerBen Warren <biggerbadderben@gmail.com>2010-05-03 14:52:48 -0700
commit9739946cc5b616c026d433bd07d193cf452ddea0 (patch)
treeef66b5ce60bff4bf493552f6a879353291382f96 /net
parent6f5f89f01195e2d009b317df27197a38fcab3553 (diff)
./net/net.c - make Microsoft dns servers happy with random_port() numbers
For some reason, (which I can't find any documentation on), if U-Boot gives a port number higher than 17500 to a Microsoft DNS server, the server will reply to port 17500, and U-Boot will ignore things (since that isn't the port it asked the DNS server to reply to). This fixes that by ensuring the random port number is less than 17500. Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Diffstat (limited to 'net')
-rw-r--r--net/net.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/net.c b/net/net.c
index 7d2220d48de..cda731986b7 100644
--- a/net/net.c
+++ b/net/net.c
@@ -1872,11 +1872,13 @@ void copy_filename (char *dst, char *src, int size)
#if defined(CONFIG_CMD_NFS) || defined(CONFIG_CMD_SNTP) || defined(CONFIG_CMD_DNS)
/*
- * make port a little random, but use something trivial to compute
+ * make port a little random (1024-17407)
+ * This keeps the math somewhat trivial to compute, and seems to work with
+ * all supported protocols/clients/servers
*/
unsigned int random_port(void)
{
- return 1024 + (get_timer(0) % 0x8000);;
+ return 1024 + (get_timer(0) % 0x4000);
}
#endif