Skip to content

Commit a3de7a9

Browse files
committed
Disable ssl verify for external session Andre0512/speedport#13
1 parent 4186e87 commit a3de7a9

2 files changed

Lines changed: 14 additions & 9 deletions

File tree

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
setup(
99
name="speedport-api",
10-
version="0.5.8",
10+
version="0.5.9",
1111
author="Andre Basche",
1212
description="Control Telekom Speedport routers with Python",
1313
long_description=long_description,

speedport/connection.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,22 @@ def __init__(
6363
self._url = host_url
6464
self._own_session = session is None
6565
self._session: aiohttp.ClientSession | None = session
66+
self._verify_ssl: bool = False
67+
self._timeout: float = 30
6668

6769
async def __aenter__(self):
6870
return await self.create()
6971

7072
async def __aexit__(self, exc_type, exc_val, exc_tb):
7173
await self.close()
7274

75+
@property
76+
def _kwargs(self):
77+
return {"verify_ssl": self._verify_ssl, "timeout": self._timeout}
78+
7379
async def create(self) -> Self:
7480
"""Create aiohttp session"""
75-
connector = aiohttp.TCPConnector(verify_ssl=False)
81+
connector = aiohttp.TCPConnector(verify_ssl=self._verify_ssl)
7682
if not self._session:
7783
jar = aiohttp.CookieJar(unsafe=True)
7884
self._session = aiohttp.ClientSession(connector=connector, cookie_jar=jar)
@@ -91,7 +97,9 @@ async def get(self, path: str, auth: bool = False, referer: str = ""):
9197
referer = f"{self._url}/{referer}"
9298
if token := await self._get_httoken(referer):
9399
url += f"?_tn={token}"
94-
async with self._session.get(url, headers={"Referer": referer}) as response:
100+
async with self._session.get(
101+
url, headers={"Referer": referer}, **self._kwargs
102+
) as response:
95103
_LOGGER.debug("GET - %s - %s", url, response.status)
96104
key = self._login_key if auth else const.DEFAULT_KEY
97105
return decode(await response.text(), key=key)
@@ -104,16 +112,13 @@ async def post(self, path: str, data: dict[str, str], referer: str):
104112
data = "&".join([f"{k}={v}" for k, v in data.items()])
105113
data = encode(data, key=self._login_key)
106114
async with self._session.post(
107-
url,
108-
headers={"Referer": referer},
109-
data=data,
110-
timeout=30,
115+
url, headers={"Referer": referer}, data=data, **self._kwargs
111116
) as response:
112117
_LOGGER.debug("POST - %s - %s", url, response.status)
113118
return decode(await response.text(), key=self._login_key)
114119

115120
async def _get_httoken(self, url: str) -> str:
116-
async with self._session.get(url) as response:
121+
async with self._session.get(url, **self._kwargs) as response:
117122
_LOGGER.debug("GET - %s - %s", url, response.status)
118123
if token := re.findall("httoken = (\\d+)", await response.text()):
119124
return token[0]
@@ -131,7 +136,7 @@ async def login(self, password: str):
131136
login_data = f"{await self._get_login_key()}:{password}".encode()
132137
login_key = sha256(login_data).hexdigest()
133138
data = encode("showpw=0&password=" + login_key)
134-
async with self._session.post(url, data=data) as response:
139+
async with self._session.post(url, data=data, **self._kwargs) as response:
135140
_LOGGER.debug("POST - %s - %s", url, response.status)
136141
result = decode(await response.text())
137142
_LOGGER.debug(result)

0 commit comments

Comments
 (0)