github.com/coreos/goproxy@v0.0.0-20190513173959-f8dc2d7ba04e/examples/goproxy-sokeepalive/sokeepalive.go (about) 1 package main 2 3 import ( 4 "flag" 5 "github.com/elazarl/goproxy" 6 "log" 7 "net" 8 "net/http" 9 ) 10 11 func main() { 12 verbose := flag.Bool("v", false, "should every proxy request be logged to stdout") 13 addr := flag.String("addr", ":8080", "proxy listen address") 14 flag.Parse() 15 proxy := goproxy.NewProxyHttpServer() 16 proxy.Tr.Dial = func(network, addr string) (c net.Conn, err error) { 17 c, err = net.Dial(network, addr) 18 if c, ok := c.(*net.TCPConn); err == nil && ok { 19 c.SetKeepAlive(true) 20 } 21 return 22 } 23 proxy.Verbose = *verbose 24 log.Fatal(http.ListenAndServe(*addr, proxy)) 25 }