godofdream/go-zeroweb

View on GitHub
serve.go

Summary

Maintainability
A
0 mins
Test Coverage
package zeroweb

import (
    "github.com/go-siris/tcplisten"
    "github.com/rs/zerolog/log"
)

func (zeroweb *Zeroweb) Serve() error {
    zeroweb.Reload()
    tcpconf := tcplisten.Config{
        ReusePort:   true,
        DeferAccept: true,
        FastOpen:    true,
        Backlog:     zeroweb.Config.GetInt("http.max_pending_connections"),
    }
    network := zeroweb.Config.GetString("http.network")
    addr := zeroweb.Config.GetString("http.addr")
    ln, err := tcpconf.NewListener(network, addr)
    if err != nil {
        log.Fatal().Err(err).Msg("Failed starting Listener")
        return err
    }

    log.Info().Str("network", network).Str("addr", addr).Msg("Starting Webserver")
    if err = zeroweb.Server.Serve(ln); err != nil {
        log.Fatal().Err(err).Msg("Failed serving incoming connections")
        return err
    }

    return nil
}