[git commit master] tftpd: another small tweak

Denys Vlasenko vda.linux at googlemail.com
Sun Nov 8 17:27:18 UTC 2009


commit: http://git.busybox.net/busybox/commit/?id=6528abeb6af88f40924c85e8cf05dad1d3ab88a5
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/tftp.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/networking/tftp.c b/networking/tftp.c
index eddb148..ef4198b 100644
--- a/networking/tftp.c
+++ b/networking/tftp.c
@@ -743,7 +743,7 @@ int tftpd_main(int argc UNUSED_PARAM, char **argv)
 	const char *error_msg;
 	int opt, result, opcode;
 	IF_FEATURE_TFTP_BLOCKSIZE(int blksize = TFTP_BLKSIZE_DEFAULT;)
-	IF_FEATURE_TFTP_BLOCKSIZE(int want_transfer_size = 0;)
+	IF_FEATURE_TFTP_BLOCKSIZE(int want_transfer_size;)
 
 	INIT_G();
 
@@ -791,6 +791,7 @@ int tftpd_main(int argc UNUSED_PARAM, char **argv)
 		goto err;
 	}
 # if ENABLE_FEATURE_TFTP_BLOCKSIZE
+	want_transfer_size = 0;
 	{
 		char *res;
 		char *opt_str = mode + sizeof("octet");
@@ -805,8 +806,10 @@ int tftpd_main(int argc UNUSED_PARAM, char **argv)
 					goto do_proto;
 				}
 			}
+			if (opcode != TFTP_WRQ /* download? */
 			/* did client ask us about file size? */
-			if (tftp_get_option("tsize", opt_str, opt_len)) {
+			 && tftp_get_option("tsize", opt_str, opt_len)
+			) {
 				want_transfer_size = 1;
 			}
 		}
@@ -821,7 +824,6 @@ int tftpd_main(int argc UNUSED_PARAM, char **argv)
 			goto err;
 		}
 		IF_GETPUT(option_mask32 |= TFTP_OPT_GET;) /* will receive file's data */
-		want_transfer_size = 0; /* do not send file size, it's meaningless */
 	} else {
 		IF_GETPUT(option_mask32 |= TFTP_OPT_PUT;) /* will send file's data */
 	}
-- 
1.6.3.3



More information about the busybox-cvs mailing list