Skip to content

Commit f895ea4

Browse files
committed
Fix Redis URI parsing to handle query parameters
- Add support for SSL parameters in query string (ssl_cert_reqs, ssl_ca_certs, etc.) - Parse query parameters from Redis URI to properly configure SSL connections - This fixes the issue where Redis Cloud URIs with SSL parameters were being ignored
1 parent bada02c commit f895ea4

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/main.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,29 @@ def parse_redis_uri(uri: str) -> dict:
5959
if parsed.password:
6060
config['password'] = parsed.password
6161

62+
# Parse query parameters for SSL and other options
63+
if parsed.query:
64+
query_params = urllib.parse.parse_qs(parsed.query)
65+
66+
# Handle SSL parameters
67+
if 'ssl_cert_reqs' in query_params:
68+
config['ssl_cert_reqs'] = query_params['ssl_cert_reqs'][0]
69+
if 'ssl_ca_certs' in query_params:
70+
config['ssl_ca_certs'] = query_params['ssl_ca_certs'][0]
71+
if 'ssl_ca_path' in query_params:
72+
config['ssl_ca_path'] = query_params['ssl_ca_path'][0]
73+
if 'ssl_keyfile' in query_params:
74+
config['ssl_keyfile'] = query_params['ssl_keyfile'][0]
75+
if 'ssl_certfile' in query_params:
76+
config['ssl_certfile'] = query_params['ssl_certfile'][0]
77+
78+
# Handle other parameters
79+
if 'db' in query_params:
80+
try:
81+
config['db'] = int(query_params['db'][0])
82+
except ValueError:
83+
pass
84+
6285
return config
6386

6487

0 commit comments

Comments
 (0)