diff options
| author | Shulhan <ms@kilabit.info> | 2026-02-02 16:22:48 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2026-02-02 16:28:11 +0700 |
| commit | 1e3bb9be8444082dc1ada7f76a727b9a9f764d47 (patch) | |
| tree | f2128fc6e0660cc0d672bf886c593e1b87a5c014 /lib/http/server.go | |
| parent | 23c576b28ac9bd180155e99f5f07f9d0bac3436e (diff) | |
| download | pakakeh.go-1e3bb9be8444082dc1ada7f76a727b9a9f764d47.tar.xz | |
lib/http: add field Listener to ServerOptions
The field Listener allow user to pass [net.Listener] for accepting new
connection using [http.Serve] or [http.ServeTLS].
Diffstat (limited to 'lib/http/server.go')
| -rw-r--r-- | lib/http/server.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/http/server.go b/lib/http/server.go index 4c89032b..76713308 100644 --- a/lib/http/server.go +++ b/lib/http/server.go @@ -352,9 +352,17 @@ func (srv *Server) ServeHTTP(res http.ResponseWriter, req *http.Request) { // Start the HTTP server. func (srv *Server) Start() (err error) { if srv.Server.TLSConfig == nil { - err = srv.Server.ListenAndServe() + if srv.Options.Listener == nil { + err = srv.Server.ListenAndServe() + } else { + err = srv.Server.Serve(srv.Options.Listener) + } } else { - err = srv.Server.ListenAndServeTLS("", "") + if srv.Options.Listener == nil { + err = srv.Server.ListenAndServeTLS(``, ``) + } else { + err = srv.Server.ServeTLS(srv.Options.Listener, ``, ``) + } } if errors.Is(err, http.ErrServerClosed) { err = nil |
