From 69674fcdd5af95c4eab6a4c79c6f224b34bb1f87 Mon Sep 17 00:00:00 2001 From: Adnan Maolood Date: Fri, 19 Feb 2021 18:45:19 -0500 Subject: [PATCH] examples/server: Use certificate.Store --- examples/server.go | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/examples/server.go b/examples/server.go index 992af4c..6e00f32 100644 --- a/examples/server.go +++ b/examples/server.go @@ -16,25 +16,31 @@ import ( ) func main() { - var server gemini.Server - server.ReadTimeout = 30 * time.Second - server.WriteTimeout = 1 * time.Minute - if err := server.Certificates.Load("/var/lib/gemini/certs"); err != nil { + certificates := &certificate.Store{ + CreateCertificate: func(hostname string) (tls.Certificate, error) { + return certificate.Create(certificate.CreateOptions{ + Subject: pkix.Name{ + CommonName: hostname, + }, + DNSNames: []string{hostname}, + Duration: 365 * 24 * time.Hour, + }) + }, + } + certificates.Register("localhost") + if err := certificates.Load("/var/lib/gemini/certs"); err != nil { log.Fatal(err) } - server.GetCertificate = func(hostname string) (tls.Certificate, error) { - return certificate.Create(certificate.CreateOptions{ - Subject: pkix.Name{ - CommonName: hostname, - }, - DNSNames: []string{hostname}, - Duration: 365 * 24 * time.Hour, - }) - } - var mux gemini.ServeMux - mux.Handle("localhost", gemini.FileServer(os.DirFS("/var/www"))) - server.Handler = &mux + mux := &gemini.ServeMux{} + mux.Handle("/", gemini.FileServer(os.DirFS("/var/www"))) + + server := &gemini.Server{ + Handler: mux, + ReadTimeout: 30 * time.Second, + WriteTimeout: 1 * time.Minute, + GetCertificate: certificates.GetCertificate, + } if err := server.ListenAndServe(); err != nil { log.Fatal(err)