Parse http address without url

This commit is contained in:
Travis Hunter 2017-04-01 15:10:33 -04:00
parent af7be2d622
commit f983933d88
No known key found for this signature in database
GPG Key ID: B7810CC4B1C2283F

18
http.go
View File

@ -5,7 +5,6 @@ import (
"log" "log"
"net" "net"
"net/http" "net/http"
"net/url"
"strings" "strings"
"time" "time"
) )
@ -24,19 +23,24 @@ func (s *Server) ListenAndServe() {
} }
func (s *Server) ServeHTTP() { func (s *Server) ServeHTTP() {
u, err := url.Parse(s.Opts.HttpAddress) httpAddress := s.Opts.HttpAddress
if err != nil { scheme := ""
log.Fatalf("FATAL: could not parse %#v: %v", s.Opts.HttpAddress, err)
i := strings.Index(httpAddress, "://")
if i > -1 {
scheme = httpAddress[0:i]
} }
var networkType string var networkType string
switch u.Scheme { switch scheme {
case "", "http": case "", "http":
networkType = "tcp" networkType = "tcp"
default: default:
networkType = u.Scheme networkType = scheme
} }
listenAddr := strings.TrimPrefix(u.String(), u.Scheme+"://")
slice := strings.SplitN(httpAddress, "//", 2)
listenAddr := slice[len(slice)-1]
listener, err := net.Listen(networkType, listenAddr) listener, err := net.Listen(networkType, listenAddr)
if err != nil { if err != nil {