Skip to content

"urlopen error no host given" occurred by referring to an empty proxy env params #1082

@y-adachi-00one

Description

@y-adachi-00one

Reproducible in:

There sets empty HTTP_PROXY environment param at first.

export HTTP_PROXY=""
import logging, os

logging.basicConfig(level=logging.DEBUG)

from slack_sdk import WebClient

proxy_url = (
    os.environ.get("HTTPS_PROXY")
    or os.environ.get("https_proxy")
    or os.environ.get("HTTP_PROXY")
    or os.environ.get("http_proxy")
)

print(proxy_url)  # this param is void ("") but it's available

client = WebClient(os.environ["SLACK_BOT_TOKEN"])

response = client.chat_postMessage(channel="#randam", text="hello",)

The Slack SDK version

slack-sdk==3.8.0
slackbot==1.0.0
slackdown==0.0.3
slacker==0.14.0

Python runtime version

Python 3.8.10

OS info

WSL2 (Ubuntu 20.04) on Windows10

Steps to reproduce:

running sample code

Expected result:

If proxies on environment params are empty, I'd like to let these params ignore.

Actual result:

There below behavior has occurred.

ERROR:slack_sdk.web.base_client:Failed to send a request to Slack API server:

Requirements

I would like you to merge below patch.

diff --git a/slack_sdk/proxy_env_variable_loader.py b/slack_sdk/proxy_env_variable_loader.py
index 398bef1..b17219e 100644
--- a/slack_sdk/proxy_env_variable_loader.py
+++ b/slack_sdk/proxy_env_variable_loader.py
@@ -13,8 +13,10 @@ def load_http_proxy_from_env(logger: logging.Logger = _default_logger) -> Option
         or os.environ.get("HTTP_PROXY")
         or os.environ.get("http_proxy")
     )
-    if proxy_url is not None:
+    if (proxy_url is not None) and (proxy_url != ""):
         logger.debug(
             f"HTTP proxy URL has been loaded from an env variable: {proxy_url}"
         )
+    else:
+        proxy_url = None
     return proxy_url

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions