summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/hashserv/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/hashserv/__init__.py')
-rw-r--r--bitbake/lib/hashserv/__init__.py31
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
6import asyncio 6import asyncio
7from contextlib import closing 7from contextlib import closing
8import re
9import itertools 8import itertools
10import json 9import json
11from collections import namedtuple 10from collections import namedtuple
12from urllib.parse import urlparse 11from urllib.parse import urlparse
13 12from bb.asyncrpc.client import parse_address, ADDR_TYPE_UNIX, ADDR_TYPE_WS
14UNIX_PREFIX = "unix://"
15WS_PREFIX = "ws://"
16WSS_PREFIX = "wss://"
17
18ADDR_TYPE_UNIX = 0
19ADDR_TYPE_TCP = 1
20ADDR_TYPE_WS = 2
21 13
22User = namedtuple("User", ("username", "permissions")) 14User = namedtuple("User", ("username", "permissions"))
23 15
24 16
25def 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
41def create_server( 17def 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