mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 08:49:13 +00:00
fix(http): specify ip stack when listen fails (#1306)
* fix(http): specify ip stack when listen fails * break your err * fix(http): log msg --------- Co-authored-by: ze0s <43699394+zze0s@users.noreply.github.com>
This commit is contained in:
parent
8ef8bc6003
commit
0b34efc753
1 changed files with 17 additions and 3 deletions
|
@ -75,18 +75,32 @@ func NewServer(log logger.Logger, config *config.AppConfig, sse *sse.Server, db
|
||||||
|
|
||||||
func (s Server) Open() error {
|
func (s Server) Open() error {
|
||||||
addr := fmt.Sprintf("%v:%v", s.config.Config.Host, s.config.Config.Port)
|
addr := fmt.Sprintf("%v:%v", s.config.Config.Host, s.config.Config.Port)
|
||||||
listener, err := net.Listen("tcp", addr)
|
|
||||||
|
var err error
|
||||||
|
for _, proto := range []string{"tcp", "tcp4", "tcp6"} {
|
||||||
|
if err = s.tryToServe(addr, proto); err == nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
s.log.Error().Err(err).Msgf("Failed to start %s server. Attempted to listen on %s", proto, addr)
|
||||||
|
}
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s Server) tryToServe(addr, protocol string) error {
|
||||||
|
listener, err := net.Listen(protocol, addr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s.log.Info().Msgf("Starting server %s. Listening on %s", protocol, listener.Addr().String())
|
||||||
|
|
||||||
server := http.Server{
|
server := http.Server{
|
||||||
Handler: s.Handler(),
|
Handler: s.Handler(),
|
||||||
ReadHeaderTimeout: time.Second * 15,
|
ReadHeaderTimeout: time.Second * 15,
|
||||||
}
|
}
|
||||||
|
|
||||||
s.log.Info().Msgf("Starting server. Listening on %s", listener.Addr().String())
|
|
||||||
|
|
||||||
return server.Serve(listener)
|
return server.Serve(listener)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue