Skip to content

Commit 16652e3

Browse files
committed
fix: parse URLs without scheme in remove port function
1 parent eb1bcf3 commit 16652e3

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

urlutil/urlutil.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,13 @@ func GetMediaExtensions() []string {
231231

232232
// RemoveDefaultPort removes the default port from a URL based on its scheme.
233233
func RemoveDefaultPort(urlStr string) (string, error) {
234+
isTempScheme := false
235+
236+
if !strings.Contains(urlStr, "://") {
237+
urlStr = "temp://" + urlStr
238+
isTempScheme = true
239+
}
240+
234241
u, err := url.Parse(urlStr)
235242
if err != nil {
236243
return "", fmt.Errorf("invalid URL: %w", err)
@@ -265,6 +272,8 @@ func RemoveDefaultPort(urlStr string) (string, error) {
265272
defaultPort = "443"
266273
case "ftp":
267274
defaultPort = "21"
275+
case "temp":
276+
defaultPort = ""
268277
default:
269278
return u.String(), nil
270279
}
@@ -273,5 +282,10 @@ func RemoveDefaultPort(urlStr string) (string, error) {
273282
u.Host = host
274283
}
275284

276-
return u.String(), nil
285+
finalURL := u.String()
286+
if isTempScheme {
287+
finalURL = strings.TrimPrefix(finalURL, "temp://")
288+
}
289+
290+
return finalURL, nil
277291
}

0 commit comments

Comments
 (0)