From 5f7d34066cc5583ee30a315e0661b5326dc548db Mon Sep 17 00:00:00 2001 From: Alberto Cortés Date: Tue, 18 Oct 2016 15:23:01 +0200 Subject: Substitute old pktline encoder/decoder with new pktline scanner (#84) * replace old pktline package with new pktline scanner * remove error checks on pktline.NewFromString * fix deppend bug * reduce memory garbage when pktline.NewFromStrings * improve int to hex conversion to help gc * make intToHex func private * clean function names --- formats/pktline/doc.go | 59 -------------------------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 formats/pktline/doc.go (limited to 'formats/pktline/doc.go') diff --git a/formats/pktline/doc.go b/formats/pktline/doc.go deleted file mode 100644 index 1e14ec0..0000000 --- a/formats/pktline/doc.go +++ /dev/null @@ -1,59 +0,0 @@ -// Package pktline implements a encoder/decoder of pkt-line format -package pktline - -// pkt-line Format -// --------------- -// -// Much (but not all) of the payload is described around pkt-lines. -// -// A pkt-line is a variable length binary string. The first four bytes -// of the line, the pkt-len, indicates the total length of the line, -// in hexadecimal. The pkt-len includes the 4 bytes used to contain -// the length's hexadecimal representation. -// -// A pkt-line MAY contain binary data, so implementors MUST ensure -// pkt-line parsing/formatting routines are 8-bit clean. -// -// A non-binary line SHOULD BE terminated by an LF, which if present -// MUST be included in the total length. -// -// The maximum length of a pkt-line's data component is 65520 bytes. -// Implementations MUST NOT send pkt-line whose length exceeds 65524 -// (65520 bytes of payload + 4 bytes of length data). -// -// Implementations SHOULD NOT send an empty pkt-line ("0004"). -// -// A pkt-line with a length field of 0 ("0000"), called a flush-pkt, -// is a special case and MUST be handled differently than an empty -// pkt-line ("0004"). -// -// ---- -// pkt-line = data-pkt / flush-pkt -// -// data-pkt = pkt-len pkt-payload -// pkt-len = 4*(HEXDIG) -// pkt-payload = (pkt-len - 4)*(OCTET) -// -// flush-pkt = "0000" -// ---- -// -// Examples (as C-style strings): -// -// ---- -// pkt-line actual value -// --------------------------------- -// "0006a\n" "a\n" -// "0005a" "a" -// "000bfoobar\n" "foobar\n" -// "0004" "" -// ---- -// -// Extracted from: -// https://github.com/git/git/blob/master/Documentation/technical/protocol-common.txt - -const ( - // HeaderLength length of the pktline header - HeaderLength = 4 - // MaxLength max line length - MaxLength = 65524 -) -- cgit