aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/protocol/packp/gitproto.go
diff options
context:
space:
mode:
authorAyman Bagabas <ayman.bagabas@gmail.com>2023-11-17 15:29:33 -0500
committerAyman Bagabas <ayman.bagabas@gmail.com>2023-11-23 11:47:24 -0500
commitf46d04a18759071e45b057908050a01e061f1ddd (patch)
treee7d9d7cc1be92cf0d5f0a0136b02abf4829c2b7b /plumbing/protocol/packp/gitproto.go
parente2c6ae3333a3facd13aa52e1986a2ba2dbc56a9d (diff)
downloadgo-git-f46d04a18759071e45b057908050a01e061f1ddd.tar.gz
plumbing: transport: use git-proto-request and decode error-line errors
Diffstat (limited to 'plumbing/protocol/packp/gitproto.go')
-rw-r--r--plumbing/protocol/packp/gitproto.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/plumbing/protocol/packp/gitproto.go b/plumbing/protocol/packp/gitproto.go
index 806e44c..0b7ff8f 100644
--- a/plumbing/protocol/packp/gitproto.go
+++ b/plumbing/protocol/packp/gitproto.go
@@ -76,7 +76,11 @@ func (g *GitProtoRequest) Encode(w io.Writer) error {
func (g *GitProtoRequest) Decode(r io.Reader) error {
s := pktline.NewScanner(r)
if !s.Scan() {
- return s.Err()
+ err := s.Err()
+ if err == nil {
+ return ErrInvalidGitProtoRequest
+ }
+ return err
}
line := string(s.Bytes())
@@ -99,8 +103,9 @@ func (g *GitProtoRequest) Decode(r io.Reader) error {
return fmt.Errorf("%w: missing pathname", ErrInvalidGitProtoRequest)
}
+ g.Pathname = params[0]
if len(params) > 1 {
- g.Host = params[1]
+ g.Host = strings.TrimPrefix(params[1], "host=")
}
if len(params) > 2 {