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)
-
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.
-
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 wildcards. 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