From e599f0e2d4f8177143478ba17189e1ef656b7fe0 Mon Sep 17 00:00:00 2001 From: tjp Date: Mon, 13 Nov 2023 07:58:02 -0700 Subject: remove the old contrib/sharedhost replacement approach --- contrib/sharedhost/replacement.go | 47 --------------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 contrib/sharedhost/replacement.go (limited to 'contrib/sharedhost/replacement.go') diff --git a/contrib/sharedhost/replacement.go b/contrib/sharedhost/replacement.go deleted file mode 100644 index cabc6b1..0000000 --- a/contrib/sharedhost/replacement.go +++ /dev/null @@ -1,47 +0,0 @@ -package sharedhost - -import ( - "context" - "crypto/tls" - "net/url" - "path" - - sr "tildegit.org/tjp/sliderule" -) - -// ReplaceTilde builds a middleware which substitutes a leading '~' in the request path. -// -// It makes the alteration to a copy of the request which is then passed into the -// wrapped Handler. This way middlewares outside of this one inspecting the request -// afterwards will see the original URL. -// -// Typically the replacement should end with a "/", so that the ~ ends up mapping to a -// particular directory on the filesystem. For instance with a replacement string of -// "users/", "domain.com/~jim/index.gmi" maps to "domain.com/users/jim/index.gmi". -func ReplaceTilde(replacement string) sr.Middleware { - return func(inner sr.Handler) sr.Handler { - return sr.HandlerFunc(func(ctx context.Context, request *sr.Request) *sr.Response { - if len(request.Path) > 1 && request.Path[0:2] == "/~" { - request = cloneRequest(request) - request.Path = path.Clean("/" + replacement + request.Path[2:]) - } - - return inner.Handle(ctx, request) - }) - } -} - -func cloneRequest(start *sr.Request) *sr.Request { - next := &sr.Request{} - *next = *start - - next.URL = &url.URL{} - *next.URL = *start.URL - - if start.TLSState != nil { - next.TLSState = &tls.ConnectionState{} - *next.TLSState = *start.TLSState - } - - return next -} -- cgit v1.2.3