[U-Boot] [Patch] ./net/net.c - make Microsoft dns servers happy with random_port() numbers
Ben Warren
biggerbadderben at gmail.com
Mon Apr 5 09:17:18 CEST 2010
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 at 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
More information about the U-Boot
mailing list