From 83792a4241634f08953fc3b64ec9c83216a0d990 Mon Sep 17 00:00:00 2001 From: mappu Date: Sat, 2 Apr 2016 13:49:24 +1300 Subject: [PATCH] libnmdc: add default protocol/port if not present --- src/libnmdc/libnmdc.go | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/libnmdc/libnmdc.go b/src/libnmdc/libnmdc.go index 8f7e122..0a3c253 100644 --- a/src/libnmdc/libnmdc.go +++ b/src/libnmdc/libnmdc.go @@ -16,14 +16,31 @@ type HubEventType int type HubAddress string +func (this *HubAddress) parse() url.URL { + parsed, err := url.Parse(strings.ToLower(string(*this))) + if err != nil || len(parsed.Host) == 0 { + parsed = &url.URL{ + Scheme: "nmdc", + Host: string(*this), + } + } + + // Add default port if not specified + if !strings.ContainsRune(parsed.Host, ':') { + parsed.Host = parsed.Host + ":411" + } + + return *parsed +} + func (this *HubAddress) IsSecure() bool { - parsed, _ := url.Parse(strings.ToLower(string(*this))) + parsed := this.parse() + return parsed.Scheme == "nmdcs" || parsed.Scheme == "dchubs" } func (this *HubAddress) GetHostOnly() string { - parsed, _ := url.Parse(strings.ToLower(string(*this))) - return parsed.Host + return this.parse().Host } const (