diff options
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/server.go | 38 |
1 files 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 { - log.Fatal(err) + 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, + }) + }, } - 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, - }) + certificates.Register("localhost") + if err := certificates.Load("/var/lib/gemini/certs"); err != nil { + log.Fatal(err) } - 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) |