@@ -60,7 +60,7 @@ func runHTTPRedirector() {
60
60
http .Redirect (w , r , target , http .StatusTemporaryRedirect )
61
61
})
62
62
63
- var err = runHTTP (source , context2 .ClearHandler (handler ))
63
+ var err = runHTTP ("tcp" , source , context2 .ClearHandler (handler ))
64
64
65
65
if err != nil {
66
66
log .Fatal ("Failed to start port redirection: %v" , err )
@@ -77,12 +77,12 @@ func runLetsEncrypt(listenAddr, domain, directory, email string, m http.Handler)
77
77
go func () {
78
78
log .Info ("Running Let's Encrypt handler on %s" , setting .HTTPAddr + ":" + setting .PortToRedirect )
79
79
// all traffic coming into HTTP will be redirect to HTTPS automatically (LE HTTP-01 validation happens here)
80
- var err = runHTTP (setting .HTTPAddr + ":" + setting .PortToRedirect , certManager .HTTPHandler (http .HandlerFunc (runLetsEncryptFallbackHandler )))
80
+ var err = runHTTP ("tcp" , setting .HTTPAddr + ":" + setting .PortToRedirect , certManager .HTTPHandler (http .HandlerFunc (runLetsEncryptFallbackHandler )))
81
81
if err != nil {
82
82
log .Fatal ("Failed to start the Let's Encrypt handler on port %s: %v" , setting .PortToRedirect , err )
83
83
}
84
84
}()
85
- return runHTTPSWithTLSConfig (listenAddr , certManager .TLSConfig (), context2 .ClearHandler (m ))
85
+ return runHTTPSWithTLSConfig ("tcp" , listenAddr , certManager .TLSConfig (), context2 .ClearHandler (m ))
86
86
}
87
87
88
88
func runLetsEncryptFallbackHandler (w http.ResponseWriter , r * http.Request ) {
@@ -171,7 +171,7 @@ func runWeb(ctx *cli.Context) error {
171
171
switch setting .Protocol {
172
172
case setting .HTTP :
173
173
NoHTTPRedirector ()
174
- err = runHTTP (listenAddr , context2 .ClearHandler (m ))
174
+ err = runHTTP ("tcp" , listenAddr , context2 .ClearHandler (m ))
175
175
case setting .HTTPS :
176
176
if setting .EnableLetsEncrypt {
177
177
err = runLetsEncrypt (listenAddr , setting .Domain , setting .LetsEncryptDirectory , setting .LetsEncryptEmail , context2 .ClearHandler (m ))
@@ -182,7 +182,7 @@ func runWeb(ctx *cli.Context) error {
182
182
} else {
183
183
NoHTTPRedirector ()
184
184
}
185
- err = runHTTPS (listenAddr , setting .CertFile , setting .KeyFile , context2 .ClearHandler (m ))
185
+ err = runHTTPS ("tcp" , listenAddr , setting .CertFile , setting .KeyFile , context2 .ClearHandler (m ))
186
186
case setting .FCGI :
187
187
NoHTTPRedirector ()
188
188
// FCGI listeners are provided as stdin - this is orthogonal to the LISTEN_FDS approach
@@ -200,25 +200,8 @@ func runWeb(ctx *cli.Context) error {
200
200
}()
201
201
err = fcgi .Serve (listener , context2 .ClearHandler (m ))
202
202
case setting .UnixSocket :
203
- // This could potentially be inherited using LISTEN_FDS but currently
204
- // these cannot be inherited
205
203
NoHTTPRedirector ()
206
- NoMainListener ()
207
- if err := os .Remove (listenAddr ); err != nil && ! os .IsNotExist (err ) {
208
- log .Fatal ("Failed to remove unix socket directory %s: %v" , listenAddr , err )
209
- }
210
- var listener * net.UnixListener
211
- listener , err = net .ListenUnix ("unix" , & net.UnixAddr {Name : listenAddr , Net : "unix" })
212
- if err != nil {
213
- break // Handle error after switch
214
- }
215
-
216
- // FIXME: add proper implementation of signal capture on all protocols
217
- // execute this on SIGTERM or SIGINT: listener.Close()
218
- if err = os .Chmod (listenAddr , os .FileMode (setting .UnixSocketPermission )); err != nil {
219
- log .Fatal ("Failed to set permission of unix socket: %v" , err )
220
- }
221
- err = http .Serve (listener , context2 .ClearHandler (m ))
204
+ err = runHTTP ("unix" , listenAddr , context2 .ClearHandler (m ))
222
205
default :
223
206
log .Fatal ("Invalid protocol: %s" , setting .Protocol )
224
207
}
0 commit comments