From 4a5f54ee708c34b983c472e93e2ae43a361393a2 Mon Sep 17 00:00:00 2001 From: "Alexander \"Arav\" Andreev" Date: Tue, 8 Feb 2022 19:21:44 +0400 Subject: [PATCH] Properly form a download URL. --- internal/handlers/handlers.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/handlers/handlers.go b/internal/handlers/handlers.go index 443f7d7..61d3a06 100644 --- a/internal/handlers/handlers.go +++ b/internal/handlers/handlers.go @@ -14,6 +14,7 @@ import ( "io" "io/fs" "net/http" + "net/url" "os" "path" "strings" @@ -174,16 +175,18 @@ func (h *UploadHandlers) Upload(w http.ResponseWriter, r *http.Request) { } downloadURL := path.Join("/f", fSaltedHash, fHandler.Filename) + downloadURLParsed, _ := url.Parse(downloadURL) if strings.Contains(r.UserAgent(), "curl") { _, scheme := utils.NetworkType(r.Host) - w.Write([]byte(path.Join(scheme, "://", r.Host, downloadURL) + "\r\n")) + downloadURL = fmt.Sprint(scheme, "://", r.Host, downloadURLParsed, "\r\n") + w.Write([]byte(downloadURL)) return } if err := compiledTemplates["uploaded"].Execute(w, &UploadedData{ MainSite: utils.MainSite(r.Host), - DownloadURL: downloadURL, + DownloadURL: downloadURLParsed.String(), KeepForHours: h.conf.Uploads.Limits.KeepForHours, }); err != nil { w.WriteHeader(http.StatusInternalServerError)