File: //opt/saltstack/salt/lib/python3.10/site-packages/cherrypy/__pycache__/_cpserver.cpython-310.pyc
o
�N�g� � @ sH d Z ddlZddlmZ ddlmZ ddlmZ dZG dd� de�Z dS ) z"Manage HTTP servers with CherryPy.� N)�
attributes)�
text_or_bytes)�
ServerAdapter)�Serverc s e Zd ZdZdZ dZedd� �Zejdd� �ZdZ dZ
d Z d
Z d Z
dZ dZ d Z d
Z dZ d
Z dZ dZ dZ dZ dZ dZ dZ dZ dZ dZ dZ dZ dd� Z ddd�Z!� fdd�Z"de"_#edd� �Z$e$jdd� �Z$dd� Z%� Z&S )r a An adapter for an HTTP server.
You can set attributes (like socket_host and socket_port)
on *this* object (which is probably cherrypy.server), and call
quickstart. For example::
cherrypy.server.socket_port = 80
cherrypy.quickstart()
i� z 127.0.0.1c C s | j S )a� The hostname or IP address on which to listen for connections.
Host values may be any IPv4 or IPv6 address, or any valid hostname.
The string 'localhost' is a synonym for '127.0.0.1' (or '::1', if
your hosts file prefers IPv6). The string '0.0.0.0' is a special
IPv4 entry meaning "any active interface" (INADDR_ANY), and '::'
is the similar IN6ADDR_ANY for IPv6. The empty string or None are
not allowed.
)�_socket_host��self� r �F/opt/saltstack/salt/lib/python3.10/site-packages/cherrypy/_cpserver.py�socket_host s zServer.socket_hostc C s |dkrt d��|| _d S )N� zuThe empty string ('') is not an allowed value. Use '0.0.0.0' instead to listen on all active interfaces (INADDR_ANY).)�
ValueErrorr �r �valuer r r
r ) s
N� �
���zHTTP/1.1i � i @ZbuiltinFT)� r c C s t j| _d| _d| _d| _dS )zInitialize Server instance.NF)�cherrypyZengineZbus�
httpserverZ interruptZrunningr r r r
�__init__� s
zServer.__init__c C sL |du r| j }|du rddlm} |�| �}t|t�r!t|�| �}|| jfS )z?Return a (httpserver, bind_addr) pair based on self attributes.Nr )�_cpwsgi_server)�instancer r ZCPWSGIServer�
isinstancer r � bind_addr)r r r r r r
�httpserver_from_self� s
zServer.httpserver_from_selfc s( | j s| �� \| _ | _tt| ��� dS )zStart the HTTP server.N)r r r �superr �startr �� __class__r r
r � s zServer.start�K c C s0 | j r| j S | jdu r| jdu rdS | j| jfS )zlReturn bind address.
A (host, port) tuple for TCP sockets or a str for Unix domain sockts.
N)�socket_filer �socket_portr r r r
r � s
zServer.bind_addrc C sr |d u rd | _ d | _d | _d S t|t�r|| _ d | _d | _d S z|\| _| _d | _ W d S ty8 td| ��w )Nzfbind_addr must be a (host, port) tuple (for TCP sockets) or a string (for Unix domain sockets), not %r)r! r r"