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