From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Warren Date: Mon, 05 Apr 2010 00:17:18 -0700 Subject: [U-Boot] [Patch] ./net/net.c - make Microsoft dns servers happy with random_port() numbers In-Reply-To: <201003081407.01006.rgetz@blackfin.uclinux.org> References: <201003081407.01006.rgetz@blackfin.uclinux.org> Message-ID: <4BB98E7E.5060103@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > > --- > 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