diff options
| author | Michael Opdenacker <michael.opdenacker@bootlin.com> | 2024-04-12 11:02:27 +0200 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-04-12 18:04:00 +0100 |
| commit | 48e130810c7d9d05c9da67d338e096c8d9e09deb (patch) | |
| tree | 0ff9a53a115b9469f2d4dc3a0b2e49673760e276 /bitbake/lib/bb/asyncrpc/client.py | |
| parent | 5df86d8a0ab0e50ba6872c757d3a57aa6b58c719 (diff) | |
| download | poky-48e130810c7d9d05c9da67d338e096c8d9e09deb.tar.gz | |
bitbake: asyncrpc: include parse_address from hashserv
Moving the code and related definitions from
hashserv/__init__.py to asyncrpc/client.py,
allowing this function to be used in other asyncrpc clients.
(Bitbake rev: a832a3e3aa8155f8633b764e32c2a684feb407a4)
Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Suggested-by: Joshua Watt <JPEWhacker@gmail.com>
Cc: Tim Orling <ticotimo@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/asyncrpc/client.py')
| -rw-r--r-- | bitbake/lib/bb/asyncrpc/client.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/bitbake/lib/bb/asyncrpc/client.py b/bitbake/lib/bb/asyncrpc/client.py index 29a5ab76aa..a350b4fb12 100644 --- a/bitbake/lib/bb/asyncrpc/client.py +++ b/bitbake/lib/bb/asyncrpc/client.py | |||
| @@ -10,11 +10,34 @@ import json | |||
| 10 | import os | 10 | import os |
| 11 | import socket | 11 | import socket |
| 12 | import sys | 12 | import sys |
| 13 | import re | ||
| 13 | import contextlib | 14 | import contextlib |
| 14 | from threading import Thread | 15 | from threading import Thread |
| 15 | from .connection import StreamConnection, WebsocketConnection, DEFAULT_MAX_CHUNK | 16 | from .connection import StreamConnection, WebsocketConnection, DEFAULT_MAX_CHUNK |
| 16 | from .exceptions import ConnectionClosedError, InvokeError | 17 | from .exceptions import ConnectionClosedError, InvokeError |
| 17 | 18 | ||
| 19 | UNIX_PREFIX = "unix://" | ||
| 20 | WS_PREFIX = "ws://" | ||
| 21 | WSS_PREFIX = "wss://" | ||
| 22 | |||
| 23 | ADDR_TYPE_UNIX = 0 | ||
| 24 | ADDR_TYPE_TCP = 1 | ||
| 25 | ADDR_TYPE_WS = 2 | ||
| 26 | |||
| 27 | def parse_address(addr): | ||
| 28 | if addr.startswith(UNIX_PREFIX): | ||
| 29 | return (ADDR_TYPE_UNIX, (addr[len(UNIX_PREFIX) :],)) | ||
| 30 | elif addr.startswith(WS_PREFIX) or addr.startswith(WSS_PREFIX): | ||
| 31 | return (ADDR_TYPE_WS, (addr,)) | ||
| 32 | else: | ||
| 33 | m = re.match(r"\[(?P<host>[^\]]*)\]:(?P<port>\d+)$", addr) | ||
| 34 | if m is not None: | ||
| 35 | host = m.group("host") | ||
| 36 | port = m.group("port") | ||
| 37 | else: | ||
| 38 | host, port = addr.split(":") | ||
| 39 | |||
| 40 | return (ADDR_TYPE_TCP, (host, int(port))) | ||
| 18 | 41 | ||
| 19 | class AsyncClient(object): | 42 | class AsyncClient(object): |
| 20 | def __init__( | 43 | def __init__( |
