git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 3/5] remote-curl: simplify rpc_out() - remove superfluous ifs

From
Jiří Hruška <jirka@fud.cz>
Date
Nov 15, 2023, 03:34 UTC
Message-ID
<CAGE_+C58LWwF5YAm+S3Ynev+mTnm_ZSVuir9sZsHmeB+56T1kA@mail.gmail.com>
In-Reply-To
<20231115033121.939-1-jirka@fud.cz>

Remove the second set of nested `if` statements and an early `return` in `rpc_out()`, because they accomplish nothing. The rest of the function would behave the same without any branching.

Signed-off-by: Jiri Hruska <jirka@fud.cz>
---
 remote-curl.c | 24 ++++++------------------
 1 file changed, 6 insertions(+), 18 deletions(-)
diff --git a/remote-curl.c b/remote-curl.c
index 428dd70aa1..690df2a43e 100644
--- a/remote-curl.c
+++ b/remote-curl.c
@@ -706,25 +706,13 @@ static size_t rpc_out(void *ptr, size_t eltsize,
 		 * we need to refrain from reading.
 		 */
 	}
-	if (rpc->flush_read_but_not_sent) {
-		if (!avail) {
-			/*
-			 * The line length either does not need to be sent at
-			 * all or has already been completely sent. Now we can
-			 * return 0, indicating EOF, meaning that the flush has
-			 * been fully sent. It is important to keep returning 0
-			 * as long as needed in that case, as libcurl invokes
-			 * the callback multiple times at EOF sometimes.
-			 */
-			return 0;
-		}
-		/*
-		 * If avail is non-zero, the line length for the flush still
-		 * hasn't been fully sent. Proceed with sending the line
-		 * length.
-		 */
-	}

+	/*
+	 * Copy data to the provided buffer. If there is nothing more to send,
+	 * nothing gets written and the return value is 0 (EOF).
+	 * It is important to keep returning 0 as long as needed in that case,
+	 * as libcurl invokes the callback multiple times at EOF sometimes.
+	 */
 	if (max < avail)
 		avail = max;
 	memcpy(ptr, rpc->buf + rpc->pos, avail);
-- 
2.42.1.5.g2f21867bd5
Previous: Jonathan TanNext: Jiří Hruška
Message 14 of 18 in “remote-curl: avoid hang if curl asks for more data after eof”
  1. remote-curl: avoid hang if curl asks for more data after eofJiří Hruška, Nov 13, 2023
  2. Jonathan TanNov 13, 2023
  3. Junio C HamanoNov 14, 2023
  4. Jiří HruškaNov 14, 2023
  5. Jiří HruškaNov 27, 2023
  6. Jiří HruškaNov 14, 2023
  7. 0/5 Avoid hang if curl needs eof twice + minor related improvementsJiří Hruška, Nov 15, 2023
  8. Jonathan TanNov 15, 2023
  9. Jiří HruškaNov 27, 2023
  10. Jonathan TanNov 27, 2023
  11. 2/5 remote-curl: improve readability of curl callbacksJiří Hruška, Nov 15, 2023
  12. 1/5 remote-curl: avoid hang if curl asks for more data after eofJiří Hruška, Nov 15, 2023
  13. Jonathan TanNov 15, 2023
  14. 3/5 remote-curl: simplify rpc_out() - remove superfluous ifsJiří Hruška, Nov 15, 2023
  15. 4/5 remote-curl: simplify rpc_out() - less nesting and renameJiří Hruška, Nov 15, 2023
  16. 5/5 http: reset CURLOPT_POSTFIELDSIZE_LARGE between requestsJiří Hruška, Nov 15, 2023
  17. Patrick SteinhardtNov 15, 2023
  18. Jiří HruškaNov 27, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.