diff options
author | tjpcc <tjp@ctrl-c.club> | 2023-10-30 10:24:49 -0600 |
---|---|---|
committer | tjpcc <tjp@ctrl-c.club> | 2023-10-30 10:24:49 -0600 |
commit | 264b8d9f59be03dd68ce2c491bbf8a4d425441ac (patch) | |
tree | d1ec51d8a919a8901ddaabedda91212ad75cb8f7 /gemini/serve.go | |
parent | 96577f2367b7b02941f991f57125281a9a447c51 (diff) |
move gemini titan request handling from server to request parser
Diffstat (limited to 'gemini/serve.go')
-rw-r--r-- | gemini/serve.go | 28 |
1 files changed, 1 insertions, 27 deletions
diff --git a/gemini/serve.go b/gemini/serve.go index 0303c13..c76353c 100644 --- a/gemini/serve.go +++ b/gemini/serve.go @@ -4,15 +4,12 @@ import ( "bufio" "context" "crypto/tls" - "errors" "fmt" "io" "net" - "strconv" - "strings" - "tildegit.org/tjp/sliderule/internal/types" "tildegit.org/tjp/sliderule/internal" + "tildegit.org/tjp/sliderule/internal/types" "tildegit.org/tjp/sliderule/logging" ) @@ -66,13 +63,6 @@ func (s *server) handleConn(conn net.Conn) { request.TLSState = &state } - if request.Scheme == "titan" { - len, err := sizeParam(request.Path) - if err == nil { - request.Meta = io.LimitReader(buf, int64(len)) - } - } - defer func() { if r := recover(); r != nil { err := fmt.Errorf("%s", r) @@ -90,22 +80,6 @@ func (s *server) handleConn(conn net.Conn) { _, _ = io.Copy(conn, NewResponseReader(response)) } -func sizeParam(path string) (int, error) { - _, rest, found := strings.Cut(path, ";") - if !found { - return 0, errors.New("no params in path") - } - - for _, piece := range strings.Split(rest, ";") { - key, val, _ := strings.Cut(piece, "=") - if key == "size" { - return strconv.Atoi(val) - } - } - - return 0, errors.New("no size param found") -} - // GeminiOnly filters requests down to just those on the gemini:// protocol. // // Optionally, it will also allow through titan:// requests. |