From 2e5ac8b9e1f2f705455d74750e465c2066ffdc7c Mon Sep 17 00:00:00 2001 From: tjp Date: Thu, 3 Apr 2025 09:51:32 -0600 Subject: empty path handling for spartan/gemini clients and servers --- gemini/client.go | 4 ++++ gemini/serve.go | 3 +++ 2 files changed, 7 insertions(+) (limited to 'gemini') diff --git a/gemini/client.go b/gemini/client.go index 1e65a39..e0f70e4 100644 --- a/gemini/client.go +++ b/gemini/client.go @@ -97,6 +97,10 @@ func (client Client) RoundTrip(ctx context.Context, request *types.Request) (*ty } } + if destURL.Path == "" { + destURL.Path = "/" + } + if _, err := conn.Write([]byte(destURL.String() + "\r\n")); err != nil { return nil, err } diff --git a/gemini/serve.go b/gemini/serve.go index c76353c..b7b9256 100644 --- a/gemini/serve.go +++ b/gemini/serve.go @@ -55,6 +55,9 @@ func (s *server) handleConn(conn net.Conn) { if err != nil { response = BadRequest(err.Error()) } else { + if request.Path == "" { + request.Path = "/" + } request.Server = s request.RemoteAddr = conn.RemoteAddr() -- cgit v1.2.3