diff mbox series

oe-git-proxy: Enable oe-git-proxy for git >= 2.32

Message ID 20230201140405.40726-1-florian.bezdeka@siemens.com
State New
Headers show
Series oe-git-proxy: Enable oe-git-proxy for git >= 2.32 | expand

Commit Message

Florian Bezdeka Feb. 1, 2023, 2:04 p.m. UTC
Modern git versions (>= 2.32) have a optimization enabled where the
socket communication is moved into half-duplex mode once the client has
sent all necessary data and is waiting for RX. git is simply closing the
TX part of the socket.

There are proxy implementations out there that will shutdown the
complete communication once the partial shutdown was received - breaking
the git:// protocol.

Using socat with the ignoreeof option fixes this issue. Closing one of
stdin/stdout will not trigger a partial shutdown of the underlying
socket.

ignoreeof is a stone old feature. It will not break in combination with
older git versions - where the partial shutdown will not be triggerend
anyhow.

Link: https://lore.kernel.org/git/4831bbeb0ec29ec84f92e0badfc0d628ecc6921d.camel@siemens.com/ 

Signed-off-by: Florian Bezdeka <florian.bezdeka@siemens.com>
---
 scripts/oe-git-proxy | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/scripts/oe-git-proxy b/scripts/oe-git-proxy
index aa9b9dc9a9..80a7a030a7 100755
--- a/scripts/oe-git-proxy
+++ b/scripts/oe-git-proxy
@@ -184,4 +184,4 @@  else
 	METHOD="PROXY:$PROXY:$1:$2,proxyport=${PORT}${PROXYAUTH}"
 fi
 
-exec $SOCAT STDIO "$METHOD"
+exec $SOCAT STDIO,ignoreeof "$METHOD"