From e9de43420e2b6e027b8ee199af7d36ecb279e609 Mon Sep 17 00:00:00 2001 From: Daan Selen Date: Thu, 19 Jun 2025 22:13:35 +0200 Subject: [PATCH 1/2] draft --- src/meshctrl/session.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/meshctrl/session.py b/src/meshctrl/session.py index a30ddaa..2e6f4be 100644 --- a/src/meshctrl/session.py +++ b/src/meshctrl/session.py @@ -10,6 +10,8 @@ import io import ssl import urllib from python_socks.async_.asyncio import Proxy +from platform import python_version +from . import __version__ from . import constants from . import exceptions from . import util @@ -45,7 +47,8 @@ class Session(object): closed (asyncio.Event): Event that occurs when the session closes permanently ''' - def __init__(self, url, user=None, domain=None, password=None, loginkey=None, proxy=None, token=None, ignore_ssl=False, auto_reconnect=False): + def __init__(self, url, user=None, domain=None, password=None, loginkey=None, proxy=None, token=None, ignore_ssl=False, auto_reconnect=False, user_agent_header=None): + default_user_agent_header = f"Python/{python_version()} websockets/{websockets.__version__} pylibmeshctrl/{__version__}" parsed = urllib.parse.urlparse(url) if parsed.scheme not in ("wss", "ws"): @@ -106,6 +109,11 @@ class Session(object): self._file_tunnels = {} self._ignore_ssl = ignore_ssl self.auto_reconnect = auto_reconnect + if user_agent_header: + self.user_agent_header = user_agent_header + else: + self.user_agent_header = default_user_agent_header + print(self.user_agent_header) self._eventer = util.Eventer() @@ -144,7 +152,7 @@ class Session(object): options["additional_headers"] = headers - async for websocket in websockets.asyncio.client.connect(self.url, proxy=self._proxy, process_exception=util._process_websocket_exception, **options): + async for websocket in websockets.asyncio.client.connect(self.url, proxy=self._proxy, process_exception=util._process_websocket_exception, user_agent_header=self.user_agent_header, **options): self.alive = True self._socket_open.set() try: From 9e08a1af49c2379c4f1d455319c6c24822fb75fa Mon Sep 17 00:00:00 2001 From: Daan Selen Date: Thu, 19 Jun 2025 22:20:30 +0200 Subject: [PATCH 2/2] Minor corrections --- src/meshctrl/__init__.py | 4 ++-- src/meshctrl/session.py | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/meshctrl/__init__.py b/src/meshctrl/__init__.py index d88cbdc..c1f7278 100644 --- a/src/meshctrl/__init__.py +++ b/src/meshctrl/__init__.py @@ -8,7 +8,7 @@ else: try: # Change here if project is renamed and does not equal the package name - dist_name = "meshctrl" + dist_name = "libmeshctrl" __version__ = version(dist_name) except PackageNotFoundError: # pragma: no cover __version__ = "unknown" @@ -24,4 +24,4 @@ from . import files from . import exceptions from . import device from . import mesh -from . import user_group \ No newline at end of file +from . import user_group diff --git a/src/meshctrl/session.py b/src/meshctrl/session.py index 2e6f4be..b01c2a2 100644 --- a/src/meshctrl/session.py +++ b/src/meshctrl/session.py @@ -113,7 +113,6 @@ class Session(object): self.user_agent_header = user_agent_header else: self.user_agent_header = default_user_agent_header - print(self.user_agent_header) self._eventer = util.Eventer()