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:
43
chasquid.go
43
chasquid.go
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user