cmd/ctrld: log fatal if could not start the listener

This commit is contained in:
Cuong Manh Le
2023-02-03 02:16:19 +07:00
committed by Cuong Manh Le
parent eb0dd6235e
commit b8772d7b4a
+5 -5
View File
@@ -116,7 +116,7 @@ func (p *prog) run() {
mainLog.Info().Msgf("Starting DNS server on listener.%s: %s", listenerNum, addr) mainLog.Info().Msgf("Starting DNS server on listener.%s: %s", listenerNum, addr)
err := p.serveUDP(listenerNum) err := p.serveUDP(listenerNum)
if err != nil && !defaultConfigWritten { if err != nil && !defaultConfigWritten {
proxyLog.Error().Err(err).Msgf("Unable to start dns proxy on listener.%s", listenerNum) proxyLog.Fatal().Err(err).Msgf("Unable to start dns proxy on listener.%s", listenerNum)
return return
} }
@@ -125,13 +125,13 @@ func (p *prog) run() {
proxyLog.Warn().Msgf("Address %s already in used, pick a random one", addr) proxyLog.Warn().Msgf("Address %s already in used, pick a random one", addr)
pc, err := net.ListenPacket("udp", net.JoinHostPort(listenerConfig.IP, "0")) pc, err := net.ListenPacket("udp", net.JoinHostPort(listenerConfig.IP, "0"))
if err != nil { if err != nil {
proxyLog.Error().Err(err).Msg("failed to listen packet") proxyLog.Fatal().Err(err).Msg("failed to listen packet")
return return
} }
_, portStr, _ := net.SplitHostPort(pc.LocalAddr().String()) _, portStr, _ := net.SplitHostPort(pc.LocalAddr().String())
port, err := strconv.Atoi(portStr) port, err := strconv.Atoi(portStr)
if err != nil { if err != nil {
proxyLog.Error().Err(err).Msg("malformed port") proxyLog.Fatal().Err(err).Msg("malformed port")
return return
} }
listenerConfig.Port = port listenerConfig.Port = port
@@ -150,11 +150,11 @@ func (p *prog) run() {
// There can be a race between closing the listener and start our own UDP server, but it's // There can be a race between closing the listener and start our own UDP server, but it's
// rare, and we only do this once, so let conservative here. // rare, and we only do this once, so let conservative here.
if err := pc.Close(); err != nil { if err := pc.Close(); err != nil {
proxyLog.Error().Err(err).Msg("failed to close packet conn") proxyLog.Fatal().Err(err).Msg("failed to close packet conn")
return return
} }
if err := p.serveUDP(listenerNum); err != nil { if err := p.serveUDP(listenerNum); err != nil {
proxyLog.Error().Err(err).Msgf("Unable to start dns proxy on listener.%s", listenerNum) proxyLog.Fatal().Err(err).Msgf("Unable to start dns proxy on listener.%s", listenerNum)
return return
} }
} }