From 306932c7014c4058d744dab71d3c190e4a4bd926 Mon Sep 17 00:00:00 2001 From: Shawn Pearce Date: Tue, 5 Jul 2016 12:37:26 -0700 Subject: [PATCH] ReceivePack: enable capabilities immediately on first line Instead of deferring until after command parsing, enable the capabilities after the first pkt-line has been read from the client. This allows the server to setup the side-band-64k channel immediately. Change-Id: I141b7fc92e983a41d3a58da8e1464a6917422b6c --- .../src/org/eclipse/jgit/transport/BaseReceivePack.java | 8 +++++--- .../src/org/eclipse/jgit/transport/ReceivePack.java | 2 -- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java index c4f662be9..6df2a4c6f 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BaseReceivePack.java @@ -1077,7 +1077,7 @@ public abstract class BaseReceivePack { */ protected void recvCommands() throws IOException { PushCertificateParser certParser = getPushCertificateParser(); - FirstLine firstLine = null; + boolean firstPkt = true; try { for (;;) { String line; @@ -1097,10 +1097,12 @@ public abstract class BaseReceivePack { continue; } - if (firstLine == null) { - firstLine = new FirstLine(line); + if (firstPkt) { + firstPkt = false; + FirstLine firstLine = new FirstLine(line); enabledCapabilities = firstLine.getCapabilities(); line = firstLine.getLine(); + enableCapabilities(); if (line.equals(GitProtocolConstants.OPTION_PUSH_CERT)) { certParser.receiveHeader(pckIn, !isBiDirectionalPipe()); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java index 1dd58d0d7..2477806bd 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java @@ -184,8 +184,6 @@ public class ReceivePack extends BaseReceivePack { return; recvCommands(); if (hasCommands()) { - enableCapabilities(); - Throwable unpackError = null; if (needPack()) { try {