From 3c1b8e10bdfeb7888fd88f7421cafdf935534c45 Mon Sep 17 00:00:00 2001 From: Neradoc Date: Sun, 23 Mar 2025 17:19:33 +0100 Subject: [PATCH 1/2] enable running on platforms without ssl --- adafruit_httpserver/server.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/adafruit_httpserver/server.py b/adafruit_httpserver/server.py index 992eae5..9e7f2ce 100644 --- a/adafruit_httpserver/server.py +++ b/adafruit_httpserver/server.py @@ -34,8 +34,20 @@ from .route import Route from .status import BAD_REQUEST_400, FORBIDDEN_403, NOT_FOUND_404, UNAUTHORIZED_401 -if implementation.name != "circuitpython": - from ssl import CERT_NONE, Purpose, SSLError +try: + from ssl import SSLContext, create_default_context + + try: # ssl imports for C python + from ssl import ( + CERT_NONE, + Purpose, + SSLError, + ) + except ImportError: + pass + SSL_AVAILABLE = True +except ImportError: + SSL_AVAILABLE = False NO_REQUEST = "no_request" @@ -129,6 +141,8 @@ def __init__( self.https = https if https: + if not SSL_AVAILABLE: + raise NotImplementedError("SSL not available on this platform") self._validate_https_cert_provided(certfile, keyfile) self._ssl_context = self._create_ssl_context(certfile, keyfile) else: From 9ed25b875e4fb1164db1ecadc5079fa7b2dbca89 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Tue, 24 Jun 2025 13:01:59 -0400 Subject: [PATCH 2/2] Remove previous `from ssl import` The fix is good, but forgot to remove the non-guarded `from ssl import ...` --- adafruit_httpserver/server.py | 1 - 1 file changed, 1 deletion(-) diff --git a/adafruit_httpserver/server.py b/adafruit_httpserver/server.py index 9e7f2ce..e15a428 100644 --- a/adafruit_httpserver/server.py +++ b/adafruit_httpserver/server.py @@ -13,7 +13,6 @@ pass from errno import EAGAIN, ECONNRESET, ETIMEDOUT -from ssl import SSLContext, create_default_context from sys import implementation from time import monotonic, sleep from traceback import print_exception