1
0
mirror of https://blitiri.com.ar/repos/chasquid synced 2025-12-18 14:47:03 +00:00

chasquid: Move the certificate loading logic in a separate function

This patch moves the top-level certificate loading logic out of main and
into a separate function.

This is only for readability and consistency with how we handle domains
(which have a similar structure already). There are no logic changes.
This commit is contained in:
Alberto Bertogli
2023-09-17 10:58:25 +01:00
parent b9e222f6eb
commit f51b449c69

View File

@@ -99,25 +99,7 @@ func main() {
name := info.Name() name := info.Name()
dir := filepath.Join("certs/", name) dir := filepath.Join("certs/", name)
log.Infof(" %s", name) loadCert(name, dir, s)
// Ignore directories that don't have both keys.
// We warn about this because it can be hard to debug otherwise.
certPath := filepath.Join(dir, "fullchain.pem")
if _, err := os.Stat(certPath); err != nil {
log.Infof(" skipping: %v", err)
continue
}
keyPath := filepath.Join(dir, "privkey.pem")
if _, err := os.Stat(keyPath); err != nil {
log.Infof(" skipping: %v", err)
continue
}
err := s.AddCerts(certPath, keyPath)
if err != nil {
log.Fatalf(" %v", err)
}
} }
// Load domains from "domains/". // Load domains from "domains/".
@@ -265,6 +247,29 @@ func signalHandler(dinfo *domaininfo.DB, srv *smtpsrv.Server) {
} }
} }
// Helper to load a single certificate configuration into the server.
func loadCert(name, dir string, s *smtpsrv.Server) {
log.Infof(" %s", name)
// Ignore directories that don't have both keys.
// We warn about this because it can be hard to debug otherwise.
certPath := filepath.Join(dir, "fullchain.pem")
if _, err := os.Stat(certPath); err != nil {
log.Infof(" skipping: %v", err)
return
}
keyPath := filepath.Join(dir, "privkey.pem")
if _, err := os.Stat(keyPath); err != nil {
log.Infof(" skipping: %v", err)
return
}
err := s.AddCerts(certPath, keyPath)
if err != nil {
log.Fatalf(" %v", err)
}
}
// Helper to load a single domain configuration into the server. // Helper to load a single domain configuration into the server.
func loadDomain(name, dir string, s *smtpsrv.Server) { func loadDomain(name, dir string, s *smtpsrv.Server) {
log.Infof(" %s", name) log.Infof(" %s", name)