Other: Don't close IMAP/SMTP listeners if they could not be created

This commit is contained in:
James Houlahan
2022-10-25 15:54:23 +02:00
parent 1919610793
commit afc5307a23
2 changed files with 8 additions and 4 deletions

View File

@ -74,8 +74,10 @@ func (bridge *Bridge) closeIMAP(ctx context.Context) error {
return fmt.Errorf("failed to close IMAP server: %w", err)
}
if err := bridge.imapListener.Close(); err != nil {
return fmt.Errorf("failed to close IMAP listener: %w", err)
if bridge.imapListener != nil {
if err := bridge.imapListener.Close(); err != nil {
return fmt.Errorf("failed to close IMAP listener: %w", err)
}
}
return nil

View File

@ -67,8 +67,10 @@ func (bridge *Bridge) restartSMTP() error {
// after we've already closed the server. However, go-smtp has a bug; it blocks on the listener
// even after the server has been closed. So we close the listener ourselves to unblock it.
func (bridge *Bridge) closeSMTP() error {
if err := bridge.smtpListener.Close(); err != nil {
return fmt.Errorf("failed to close SMTP listener: %w", err)
if bridge.smtpListener != nil {
if err := bridge.smtpListener.Close(); err != nil {
return fmt.Errorf("failed to close SMTP listener: %w", err)
}
}
if err := bridge.smtpServer.Close(); err != nil {