Parse http address without url
This commit is contained in:
parent
af7be2d622
commit
f983933d88
18
http.go
18
http.go
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user