aboutsummaryrefslogtreecommitdiff
path: root/lib/http/server.go
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2026-02-02 16:22:48 +0700
committerShulhan <ms@kilabit.info>2026-02-02 16:28:11 +0700
commit1e3bb9be8444082dc1ada7f76a727b9a9f764d47 (patch)
treef2128fc6e0660cc0d672bf886c593e1b87a5c014 /lib/http/server.go
parent23c576b28ac9bd180155e99f5f07f9d0bac3436e (diff)
downloadpakakeh.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.go12
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