aboutsummaryrefslogtreecommitdiff
path: root/cmd/receivepack9418/gitproto.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/receivepack9418/gitproto.go')
-rw-r--r--cmd/receivepack9418/gitproto.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/cmd/receivepack9418/gitproto.go b/cmd/receivepack9418/gitproto.go
new file mode 100644
index 00000000..609f2c12
--- /dev/null
+++ b/cmd/receivepack9418/gitproto.go
@@ -0,0 +1,23 @@
+package main
+
+import (
+ "fmt"
+ "io"
+
+ "codeberg.org/lindenii/furgit/format/pktline"
+)
+
+func readGitProtoRequest(r io.Reader) (gitProtoRequest, error) {
+ dec := pktline.NewDecoder(r, pktline.ReadOptions{})
+
+ frame, err := dec.ReadFrame()
+ if err != nil {
+ return gitProtoRequest{}, err
+ }
+
+ if frame.Type != pktline.PacketData {
+ return gitProtoRequest{}, fmt.Errorf("expected initial pkt-line data, got %v", frame.Type)
+ }
+
+ return parseGitProtoRequestPayload(frame.Payload)
+}