@@ -33,6 +33,7 @@ import (
33
33
34
34
var (
35
35
errNoTLSConfig = errors .New ("TLS config is not present" )
36
+ ErrNoListeners = errors .New ("no web listen address or systemd socket flag specified" )
36
37
)
37
38
38
39
type Config struct {
@@ -203,7 +204,11 @@ func ServeMultiple(listeners []net.Listener, server *http.Server, flags *FlagCon
203
204
// WebSystemdSocket in the FlagConfig is true. The FlagConfig is also passed on
204
205
// to ServeMultiple.
205
206
func ListenAndServe (server * http.Server , flags * FlagConfig , logger log.Logger ) error {
206
- if * flags .WebSystemdSocket {
207
+ if flags .WebSystemdSocket == nil && (flags .WebListenAddresses == nil || len (* flags .WebListenAddresses ) == 0 ) {
208
+ return ErrNoListeners
209
+ }
210
+
211
+ if flags .WebSystemdSocket != nil && * flags .WebSystemdSocket {
207
212
level .Info (logger ).Log ("msg" , "Listening on systemd activated listeners instead of port listeners." )
208
213
listeners , err := activation .Listeners ()
209
214
if err != nil {
@@ -214,6 +219,7 @@ func ListenAndServe(server *http.Server, flags *FlagConfig, logger log.Logger) e
214
219
}
215
220
return ServeMultiple (listeners , server , flags , logger )
216
221
}
222
+
217
223
listeners := make ([]net.Listener , 0 , len (* flags .WebListenAddresses ))
218
224
for _ , address := range * flags .WebListenAddresses {
219
225
listener , err := net .Listen ("tcp" , address )
0 commit comments