[U-Boot-Users] [PATCH] TFTP: add host ip addr support

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Wed Jan 16 18:33:22 CET 2008


On 10:49 Wed 16 Jan     , Ben Warren wrote:
> Jean-Christophe PLAGNIOL-VILLARD wrote:
> > On 22:19 Tue 15 Jan     , Ben Warren wrote:
> >   
> >> Jean-Christophe PLAGNIOL-VILLARD wrote:
> >>     
> >>> allow to use a different server as set in serverip
> >>>
> >>> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> >>>
> >>> diff --git a/common/cmd_net.c b/common/cmd_net.c
> >>> index 21682c0..b86ca86 100644
> >>> --- a/common/cmd_net.c
> >>> +++ b/common/cmd_net.c
> >>> @@ -51,7 +51,7 @@ int do_tftpb (cmd_tbl_t *cmdtp, int flag, int argc, char 
> >>> *argv[])
> >>>  U_BOOT_CMD(
> >>>  	tftpboot,	3,	1,	do_tftpb,
> >>>  	"tftpboot- boot image via network using TFTP protocol\n",
> >>> -	"[loadAddress] [bootfilename]\n"
> >>> +	"[loadAddress] [[hostIPaddr:]bootfilename]\n"
> >>>  );
> >>>   int do_rarpb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
> >>> diff --git a/net/tftp.c b/net/tftp.c
> >>> index 8b95bcf..9d87e2c 100644
> >>> --- a/net/tftp.c
> >>> +++ b/net/tftp.c
> >>> @@ -34,7 +34,7 @@
> >>>  #define TFTP_ERROR	5
> >>>  #define TFTP_OACK	6
> >>>  -
> >>> +static IPaddr_t TftpServerIP;
> >>>  static int	TftpServerPort;		/* The UDP port at their end		*/
> >>>  static int	TftpOurPort;		/* The UDP port at our end		*/
> >>>  static int	TftpTimeoutCount;
> >>> @@ -55,7 +55,7 @@ static int	TftpState;
> >>>   #define DEFAULT_NAME_LEN	(8 + 4 + 1)
> >>>  static char default_filename[DEFAULT_NAME_LEN];
> >>> -static char *tftp_filename;
> >>> +static char tftp_filename[2048];
> >>>   
> >>>       
> >> A 2k filename??? How about something more reasonable like 80 or 100 bytes. 
> >> Use a #define for the size so you can use it later.
> >>     
> > I've chosed to use the same filename size as nfs.
> >   
> Then NFS uses too big a buffer. Please make this one smaller, use a 
> #define and strncpy.
> <snip>
OK about the buffer size.

But I diaagree about strncpy because you need to known the size of
the string and we know it only when we use the default_filename otherwise
we need to strlen and in this strcpy do every thing itself.

Best Regards,
J.




More information about the U-Boot mailing list