* [U-Boot] [Patch] ./net/net.c - make Microsoft dns servers happy with random_port() numbers
@ 2010-03-08 19:07 Robin Getz
2010-03-09 8:37 ` Detlev Zundel
2010-04-05 7:17 ` Ben Warren
0 siblings, 2 replies; 3+ messages in thread
From: Robin Getz @ 2010-03-08 19:07 UTC (permalink / raw)
To: u-boot
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>
---
net/net.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/net/net.c b/net/net.c
index 595abd9..98d58e5 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
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [U-Boot] [Patch] ./net/net.c - make Microsoft dns servers happy with random_port() numbers
2010-03-08 19:07 [U-Boot] [Patch] ./net/net.c - make Microsoft dns servers happy with random_port() numbers Robin Getz
@ 2010-03-09 8:37 ` Detlev Zundel
2010-04-05 7:17 ` Ben Warren
1 sibling, 0 replies; 3+ messages in thread
From: Detlev Zundel @ 2010-03-09 8:37 UTC (permalink / raw)
To: u-boot
Hi Robin,
> 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.
Can you please put such a comment also in the code? I believe this to
be useful information when studying the code and not only when going
through changelogs.
Thanks
Detlev
--
Microsoft gives you windows, Linux gives you the whole house.
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de
^ permalink raw reply [flat|nested] 3+ messages in thread
* [U-Boot] [Patch] ./net/net.c - make Microsoft dns servers happy with random_port() numbers
2010-03-08 19:07 [U-Boot] [Patch] ./net/net.c - make Microsoft dns servers happy with random_port() numbers Robin Getz
2010-03-09 8:37 ` Detlev Zundel
@ 2010-04-05 7:17 ` Ben Warren
1 sibling, 0 replies; 3+ messages in thread
From: Ben Warren @ 2010-04-05 7:17 UTC (permalink / raw)
To: u-boot
Hi Robin,
On 3/8/2010 11:07 AM, Robin Getz wrote:
> 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>
>
> ---
> net/net.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/net/net.c b/net/net.c
> index 595abd9..98d58e5 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
>
>
Applied to net repo.
thanks,
Ben
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-04-05 7:17 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-08 19:07 [U-Boot] [Patch] ./net/net.c - make Microsoft dns servers happy with random_port() numbers Robin Getz
2010-03-09 8:37 ` Detlev Zundel
2010-04-05 7:17 ` Ben Warren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox