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 {
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
|
||||
s.log.Info().Msgf("Starting server %s. Listening on %s", protocol, listener.Addr().String())
|
||||
|
||||
server := http.Server{
|
||||
Handler: s.Handler(),
|
||||
ReadHeaderTimeout: time.Second * 15,
|
||||
}
|
||||
|
||||
s.log.Info().Msgf("Starting server. Listening on %s", listener.Addr().String())
|
||||
|
||||
return server.Serve(listener)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue