1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
package ieproxy
import (
"log"
"net"
"net/http"
)
// For testing purposes
func listenAndServeWithClose(addr string, handler http.Handler) (net.Listener, error) {
var (
listener net.Listener
err error
)
srv := &http.Server{Addr: addr, Handler: handler}
if addr == "" {
addr = ":http"
}
listener, err = net.Listen("tcp", addr)
if err != nil {
return nil, err
}
go func() {
err := srv.Serve(listener.(*net.TCPListener))
if err != nil {
log.Println("HTTP Server Error - ", err)
}
}()
return listener, nil
}
|