[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