diff options
Diffstat (limited to 'bitbake/lib/hashserv/__init__.py')
-rw-r--r-- | bitbake/lib/hashserv/__init__.py | 31 |
1 files changed, 4 insertions, 27 deletions
diff --git a/bitbake/lib/hashserv/__init__.py b/bitbake/lib/hashserv/__init__.py index 552a33278f..ac891e0174 100644 --- a/bitbake/lib/hashserv/__init__.py +++ b/bitbake/lib/hashserv/__init__.py | |||
@@ -5,39 +5,15 @@ | |||
5 | 5 | ||
6 | import asyncio | 6 | import asyncio |
7 | from contextlib import closing | 7 | from contextlib import closing |
8 | import re | ||
9 | import itertools | 8 | import itertools |
10 | import json | 9 | import json |
11 | from collections import namedtuple | 10 | from collections import namedtuple |
12 | from urllib.parse import urlparse | 11 | from urllib.parse import urlparse |
13 | 12 | from bb.asyncrpc.client import parse_address, ADDR_TYPE_UNIX, ADDR_TYPE_WS | |
14 | UNIX_PREFIX = "unix://" | ||
15 | WS_PREFIX = "ws://" | ||
16 | WSS_PREFIX = "wss://" | ||
17 | |||
18 | ADDR_TYPE_UNIX = 0 | ||
19 | ADDR_TYPE_TCP = 1 | ||
20 | ADDR_TYPE_WS = 2 | ||
21 | 13 | ||
22 | User = namedtuple("User", ("username", "permissions")) | 14 | User = namedtuple("User", ("username", "permissions")) |
23 | 15 | ||
24 | 16 | ||
25 | def parse_address(addr): | ||
26 | if addr.startswith(UNIX_PREFIX): | ||
27 | return (ADDR_TYPE_UNIX, (addr[len(UNIX_PREFIX) :],)) | ||
28 | elif addr.startswith(WS_PREFIX) or addr.startswith(WSS_PREFIX): | ||
29 | return (ADDR_TYPE_WS, (addr,)) | ||
30 | else: | ||
31 | m = re.match(r"\[(?P<host>[^\]]*)\]:(?P<port>\d+)$", addr) | ||
32 | if m is not None: | ||
33 | host = m.group("host") | ||
34 | port = m.group("port") | ||
35 | else: | ||
36 | host, port = addr.split(":") | ||
37 | |||
38 | return (ADDR_TYPE_TCP, (host, int(port))) | ||
39 | |||
40 | |||
41 | def create_server( | 17 | def create_server( |
42 | addr, | 18 | addr, |
43 | dbname, | 19 | dbname, |
@@ -50,6 +26,7 @@ def create_server( | |||
50 | anon_perms=None, | 26 | anon_perms=None, |
51 | admin_username=None, | 27 | admin_username=None, |
52 | admin_password=None, | 28 | admin_password=None, |
29 | reuseport=False, | ||
53 | ): | 30 | ): |
54 | def sqlite_engine(): | 31 | def sqlite_engine(): |
55 | from .sqlite import DatabaseEngine | 32 | from .sqlite import DatabaseEngine |
@@ -85,9 +62,9 @@ def create_server( | |||
85 | s.start_unix_server(*a) | 62 | s.start_unix_server(*a) |
86 | elif typ == ADDR_TYPE_WS: | 63 | elif typ == ADDR_TYPE_WS: |
87 | url = urlparse(a[0]) | 64 | url = urlparse(a[0]) |
88 | s.start_websocket_server(url.hostname, url.port) | 65 | s.start_websocket_server(url.hostname, url.port, reuseport=reuseport) |
89 | else: | 66 | else: |
90 | s.start_tcp_server(*a) | 67 | s.start_tcp_server(*a, reuseport=reuseport) |
91 | 68 | ||
92 | return s | 69 | return s |
93 | 70 | ||