Changeset 418 in code for trunk/cmd/soju
- Timestamp:
- Sep 7, 2020, 7:28:24 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/cmd/soju/main.go
r417 r418 9 9 "net/url" 10 10 "strings" 11 12 "github.com/pires/go-proxyproto" 11 13 12 14 "git.sr.ht/~emersion/soju" … … 86 88 log.Fatalf("failed to start TLS listener on %q: %v", listen, err) 87 89 } 90 ln = proxyProtoListener(ln, srv) 88 91 go func() { 89 92 log.Fatal(srv.Serve(ln)) … … 98 101 log.Fatalf("failed to start listener on %q: %v", listen, err) 99 102 } 103 ln = proxyProtoListener(ln, srv) 100 104 go func() { 101 105 log.Fatal(srv.Serve(ln)) … … 139 143 log.Fatalf("failed to start listener on %q: %v", listen, err) 140 144 } 145 ln = proxyProtoListener(ln, srv) 141 146 go func() { 142 147 log.Fatal(srv.Identd.Serve(ln)) … … 150 155 log.Fatal(srv.Run()) 151 156 } 157 158 func proxyProtoListener(ln net.Listener, srv *soju.Server) net.Listener { 159 return &proxyproto.Listener{ 160 Listener: ln, 161 Policy: func(upstream net.Addr) (proxyproto.Policy, error) { 162 tcpAddr, ok := upstream.(*net.TCPAddr) 163 if !ok { 164 return proxyproto.IGNORE, nil 165 } 166 if srv.AcceptProxyIPs.Contains(tcpAddr.IP) { 167 return proxyproto.USE, nil 168 } 169 return proxyproto.IGNORE, nil 170 }, 171 } 172 }
Note:
See TracChangeset
for help on using the changeset viewer.