From 3c7872db153d179705660b925fa3095669ff5b4b Mon Sep 17 00:00:00 2001 From: Hedy Li Date: Fri, 9 Jul 2021 09:15:13 +0800 Subject: [PATCH] fix url parse --- sparte.go | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/sparte.go b/sparte.go index 6b653c1..6b6eb7e 100644 --- a/sparte.go +++ b/sparte.go @@ -11,28 +11,14 @@ import ( "strings" ) -// A better url parser see: -// https://stackoverflow.com/questions/62083272/parsing-url-with-port-and-without-scheme -func ParseRawURL(rawurl string) (u *url.URL, err error) { - u, err := url.ParseRequestURI(rawurl) - if err != nil || u.Host == "" { - u, repErr := url.ParseRequestURI("https://" + rawurl) - if repErr != nil { - fmt.Printf("Could not parse raw url: %s, error: %v", rawurl, err) - u = nil - return - } - err = nil - return - } - - return -} - // SpartanURL parses u and calls SpartanParsedURL with the parsed url func SpartanURL(u string) bool { - parsed, err := ParseRawURL(u) + parsed, err := url.Parse(u) + if parsed.Scheme != "" && parsed.Host == "" { + parsed, err = url.Parse("spartan://" + u) + } if err != nil { + fmt.Println("invalid url") return false } if parsed.Scheme != "spartan" {