dnf/0048-smtplib-catch-OSError-not-SMTPException.patch
Marek Blaha 9a15dd3809 Backport patches for dnf-automatic
smtplib: catch OSError, not SMTPException
automatic: Check availability of config file

Resolves: RHEL-71545
2025-01-29 11:58:09 +01:00

37 lines
1.3 KiB
Diff

From a1feaf8c26433325dd939a4bb0c47b50b44cfe2d Mon Sep 17 00:00:00 2001
From: Evan Goode <mail@evangoo.de>
Date: Mon, 13 Mar 2023 14:50:41 -0400
Subject: [PATCH 48/49] smtplib: catch OSError, not SMTPException
Upstream commit: aab7defca4fd827ede02336e5a0cf95e8691fb74
Some, but not all, types of connection error are caught by smtplib and
reraised as an smtplib.SMTPException. Notably, TimeoutError,
socket.gaierror (name resolution failure), and ConnectionRefusedError
and are not caught.
The more generic OSError should be caught here instead.
Resolves #1905
Resolves: https://issues.redhat.com/browse/RHEL-46030
---
dnf/automatic/emitter.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dnf/automatic/emitter.py b/dnf/automatic/emitter.py
index 4aea4b02..648f1a1d 100644
--- a/dnf/automatic/emitter.py
+++ b/dnf/automatic/emitter.py
@@ -106,7 +106,7 @@ class EmailEmitter(Emitter):
smtp = smtplib.SMTP(self._conf.email_host, timeout=300)
smtp.sendmail(email_from, email_to, message.as_string())
smtp.close()
- except smtplib.SMTPException as exc:
+ except OSError as exc:
msg = _("Failed to send an email via '%s': %s") % (
self._conf.email_host, exc)
logger.error(msg)
--
2.48.1