From 402ddafa2a9da7af6c5d32c44e9f34bfc25e58a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20H=2E=20Fjeld?= Date: Wed, 14 Jan 2026 08:01:36 +0100 Subject: [PATCH] Fix sslsni boolean to integer conversion for libpq compatibility The sslsni connection parameter was being stored as a boolean (true/false) in the database, but libpq expects integer values (1/0) for this parameter. When a boolean value was passed to libpq, it resulted in SSL connection failures with 'unexpected eof while reading' errors. This fix converts boolean connection parameters (sslcompression, sslsni) to integers when creating the connection string in server_manager.py, ensuring libpq receives the expected integer format. Fixes connection issues when using PGSSLSNI=1 with PostgreSQL 14+ servers. --- web/pgadmin/utils/driver/psycopg3/server_manager.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/web/pgadmin/utils/driver/psycopg3/server_manager.py b/web/pgadmin/utils/driver/psycopg3/server_manager.py index 8b80eea52..6952d7a2c 100644 --- a/web/pgadmin/utils/driver/psycopg3/server_manager.py +++ b/web/pgadmin/utils/driver/psycopg3/server_manager.py @@ -690,6 +690,10 @@ WHERE db.oid = {0}""".format(did)) if key == 'hostaddr' and self.use_ssh_tunnel: continue + # Convert boolean connection parameters to integer for libpq compatibility + if key in ('sslcompression', 'sslsni'): + value = 1 if value else 0 + dsn_args[key] = value display_dsn_args[key] = orig_value if with_complete_path else \ value