diff options
author | tjpcc <tjp@ctrl-c.club> | 2023-10-30 17:24:22 -0600 |
---|---|---|
committer | tjpcc <tjp@ctrl-c.club> | 2023-10-30 17:24:22 -0600 |
commit | 4c817bf712e4ffed34fdd78375fcd7157cd14dc3 (patch) | |
tree | d454598a1d10b5818031af6daf9a1c83049b9fa7 | |
parent | 634b82d24335564139b43617d641d6880219e321 (diff) |
allow for bare LF line endings in spartanv1.5.0
-rw-r--r-- | spartan/request.go | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/spartan/request.go b/spartan/request.go index 36dd225..d6a06f3 100644 --- a/spartan/request.go +++ b/spartan/request.go @@ -32,21 +32,19 @@ func ParseRequest(rdr io.Reader) (*types.Request, int, error) { if err != io.EOF && err != nil { return nil, 0, err } + line = strings.TrimSuffix(line, "\n") + line = strings.TrimSuffix(line, "\r") host, rest, ok := strings.Cut(line, " ") if !ok { return nil, 0, InvalidRequestLine } path, rest, ok := strings.Cut(rest, " ") - if !ok { + if !ok || len(rest) == 0 { return nil, 0, InvalidRequestLine } - if len(rest) < 2 || line[len(line)-2:] != "\r\n" { - return nil, 0, InvalidRequestLineEnding - } - - contentlen, err := strconv.Atoi(rest[:len(rest)-2]) + contentlen, err := strconv.Atoi(rest) if err != nil { return nil, 0, err } |