smart-http: document flush after "# service" line

The http-protocol.txt spec fails to mention that a flush packet
comes in the smart server response after sending the "service"
header.

Technically the client code is actually ready to receive an
arbitrary number of headers here, but since we haven't
introduced any other headers in the past decade (and the
client would just throw them away), let's not mention it in
the spec.

This fixes both BNF and the example. While we're fixing the
latter, let's also add the missing flush after the ref list.

Reported-by: Dorian Taylor <dorian.taylor.lists@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2018-03-03 00:27:08 -05:00 committed by Junio C Hamano
parent 38e79b1fda
commit 0aa7a78099

View File

@ -214,10 +214,12 @@ smart server reply:
S: Cache-Control: no-cache S: Cache-Control: no-cache
S: S:
S: 001e# service=git-upload-pack\n S: 001e# service=git-upload-pack\n
S: 0000
S: 004895dcfa3633004da0049d3d0fa03f80589cbcaf31 refs/heads/maint\0multi_ack\n S: 004895dcfa3633004da0049d3d0fa03f80589cbcaf31 refs/heads/maint\0multi_ack\n
S: 0042d049f6c27a2244e12041955e262a404c7faba355 refs/heads/master\n S: 0042d049f6c27a2244e12041955e262a404c7faba355 refs/heads/master\n
S: 003c2cb58b79488a98d2721cea644875a8dd0026b115 refs/tags/v1.0\n S: 003c2cb58b79488a98d2721cea644875a8dd0026b115 refs/tags/v1.0\n
S: 003fa3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1.0^{}\n S: 003fa3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1.0^{}\n
S: 0000
The client may send Extra Parameters (see The client may send Extra Parameters (see
Documentation/technical/pack-protocol.txt) as a colon-separated string Documentation/technical/pack-protocol.txt) as a colon-separated string
@ -277,6 +279,7 @@ The returned response contains "version 1" if "version=1" was sent as an
Extra Parameter. Extra Parameter.
smart_reply = PKT-LINE("# service=$servicename" LF) smart_reply = PKT-LINE("# service=$servicename" LF)
"0000"
*1("version 1") *1("version 1")
ref_list ref_list
"0000" "0000"