diff --git a/CHANGELOG b/CHANGELOG index bc194ff..4994701 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,11 @@ Changes for U-Boot 1.1.4: ====================================================================== +* Update for TFTP using a fixed UDP port + Use the approved environment variable names. Added "tftpdstp" to + allow ports other than 69 per Tolunay Orkun's recommendation. + Patch by Jerry Van Baren, 12 Jan 2005 + * Allow to force TFTP to use a fixed UDP port (Add a configuration option CONFIG_TFTP_PORT and optional env variable tftpport) diff --git a/README b/README index 3b36e50..9c3ff38 100644 --- a/README +++ b/README @@ -1490,12 +1490,16 @@ The following options need to be configured: - TFTP Fixed UDP Port: CONFIG_TFTP_PORT - If this is defined, the environment variable tftpport + If this is defined, the environment variable tftpsrcp is used to supply the TFTP UDP source port value. - If tftpport isn't defined, the normal pseudo-random port + If tftpsrcp isn't defined, the normal pseudo-random port number generator is used. - The purpose for this is to allow a TFTP server to + Also, the environment variable tftpdstp is used to supply + the TFTP UDP destination port value. If tftpdstp isn't + defined, the normal port 69 is used. + + The purpose for tftpsrcp is to allow a TFTP server to blindly start the TFTP transfer using the pre-configured target IP address and UDP port. This has the effect of "punching through" the (Windows XP) firewall, allowing @@ -2468,9 +2472,12 @@ Some configuration options can be set using Environment Variables: Useful on scripts which control the retry operation themselves. - tftpport - If this is set, the value is used for TFTP's + tftpsrcport - If this is set, the value is used for TFTP's UDP source port. + tftpdstport - If this is set, the value is used for TFTP's UDP + destination port instead of the Well Know Port 69. + vlan - When set to a value < 4095 the traffic over ethernet is encapsulated/received over 802.1q VLAN tagged frames. diff --git a/net/tftp.c b/net/tftp.c index a7c246a..748628c 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -371,7 +371,10 @@ TftpStart (void) /* Use a pseudo-random port unless a specific port is set */ TftpOurPort = 1024 + (get_timer(0) % 3072); #ifdef CONFIG_TFTP_PORT - if ((ep = getenv("tftpport")) != NULL) { + if ((ep = getenv("tftpdstp")) != NULL) { + TftpServerPort = simple_strtol(ep, NULL, 10); + } + if ((ep = getenv("tftpsrcp")) != NULL) { TftpOurPort= simple_strtol(ep, NULL, 10); } #endif