bokeh.server.util¶
Provide some utility functions useful for implementing different
components in bokeh.server
.
-
bind_sockets
(address, port)[source]¶ Bind a socket to a port on an address.
Parameters: This function returns a 2-tuple with the new socket as the first element, and the port that was bound as the second. (Useful when passing 0 as a port number to bind any free port.)
Returns: (socket, port)
-
check_whitelist
(host, whitelist)[source]¶ Check a given request host against a whitelist.
Parameters: Returns: True
, ifhost
matches any pattern inwhitelist
, otherwiseFalse
-
create_hosts_whitelist
(host_list, port)[source]¶ This whitelist can be used to restrict websocket or other connections to only those explicitly originating from approved hosts.
Parameters: - host_list (seq[str]) –
A list of string <name> or <name>:<port> values to add to the whitelist.
If no port is specified in a host string, then
":80"
is implicitly assumed. - port (int) –
If
host_list
is empty orNone
, then the whitelist will be the single item list `` [ ‘localhost:<port>’ ]``If
host_list
is not empty, this parameter has no effect.
Returns: list[str]
Raises: ValueError, if host or port values are invalid
Note
If any host in
host_list
contains a wildcard*
a warning will be logged regarding permissive websocket connections.- host_list (seq[str]) –
-
match_host
(host, pattern)[source]¶ Match a host string against a pattern
Parameters: This function will return
True
if the hostname matches the pattern, including any widcards. If the pattern contains a port, the host string must also contain a matching port.Returns: bool Examples
>>> match_host('192.168.0.1:80', '192.168.0.1:80') True >>> match_host('192.168.0.1:80', '192.168.0.1') True >>> match_host('192.168.0.1:80', '192.168.0.1:8080') False >>> match_host('192.168.0.1', '192.168.0.2') False >>> match_host('192.168.0.1', '192.168.*.*') True >>> match_host('alice', 'alice') True >>> match_host('alice:80', 'alice') True >>> match_host('alice', 'bob') False >>> match_host('foo.example.com', 'foo.example.com.net') False >>> match_host('alice', '*') True >>> match_host('alice', '*:*') True >>> match_host('alice:80', '*') True >>> match_host('alice:80', '*:80') True >>> match_host('alice:8080', '*:80') False