mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
To: barebox@lists.infradead.org
Cc: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Subject: [PATCH 6/8] tftp: do not set 'tsize' in wrq requests
Date: Sun, 28 Aug 2022 16:02:29 +0200	[thread overview]
Message-ID: <20220828140231.930643-7-enrico.scholz@sigma-chemnitz.de> (raw)
In-Reply-To: <20220828140231.930643-1-enrico.scholz@sigma-chemnitz.de>

The filesize is not known for push requests and barebox always sent
'0'.  Server might reject data because it will always exceed this
length.

Send this option only for rrq requests.

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
---
 fs/tftp.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/fs/tftp.c b/fs/tftp.c
index 7edea904aabe..c00857ecfa28 100644
--- a/fs/tftp.c
+++ b/fs/tftp.c
@@ -403,22 +403,26 @@ static int tftp_send(struct file_priv *priv)
 				"octet%c"
 				"timeout%c"
 				"%d%c"
-				"tsize%c"
-				"%lld%c"
 				"blksize%c"
 				"%u",
 				priv->filename + 1, '\0',
 				'\0',	/* "octet" */
 				'\0',	/* "timeout" */
 				TIMEOUT, '\0',
-				'\0',	/* "tsize" */
-				priv->filesize, '\0',
 				'\0',	/* "blksize" */
 				/* use only a minimal blksize for getattr
 				   operations, */
 				priv->is_getattr ? TFTP_BLOCK_SIZE : TFTP_MTU_SIZE);
 		pkt++;
 
+		if (!priv->push)
+			/* we do not know the filesize in WRQ requests and
+			   'priv->filesize' will always be zero */
+			pkt += sprintf((unsigned char *)pkt,
+				       "tsize%c%lld%c",
+				       '\0', priv->filesize,
+				       '\0');
+
 		if (window_size > 1)
 			pkt += sprintf((unsigned char *)pkt,
 				       "windowsize%c%u%c",
-- 
2.37.2




  parent reply	other threads:[~2022-08-28 14:05 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-28 14:02 [PATCH 0/8] tftp fixups Enrico Scholz
2022-08-28 14:02 ` [PATCH 1/8] tftp: make debug_assert() critical when selftest is enabled Enrico Scholz
2022-08-28 14:02 ` [PATCH 2/8] tftp: remove sanity check of first block Enrico Scholz
2022-08-28 14:02 ` [PATCH 3/8] tftp: split out allocation and cache initialization Enrico Scholz
2022-08-28 14:02 ` [PATCH 4/8] tftp: accept OACK + DATA datagrams only in certain states Enrico Scholz
2022-08-28 14:02 ` [PATCH 5/8] tftp: support non rfc 2347 servers Enrico Scholz
2022-08-28 14:02 ` Enrico Scholz [this message]
2022-08-28 14:02 ` [PATCH 7/8] tftp: fix WRQ support Enrico Scholz
2022-08-28 14:02 ` [PATCH 8/8] tftp: add some documentation about windowsize support Enrico Scholz
2022-08-29 10:52 ` [PATCH 0/8] tftp fixups Ahmad Fatoum
2022-08-30  7:30   ` Sascha Hauer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220828140231.930643-7-enrico.scholz@sigma-chemnitz.de \
    --to=enrico.scholz@sigma-chemnitz.de \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox