File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/__pycache__/portend.cpython-310.pyc
Back
o ;jX � @ s� d Z ddlZddlZddlZddlZddlZddlZddlZddlm Z ddl Zddlm Z dd� ZG dd� de�ZG d d � d e�ZG dd� de�Zed �fdd�Zed �fdd�Zdd� ZG dd� de�Zddd�Zedkote� dS dS )z: A simple library for managing the availability of ports. � N)�abc)�timingc C s | dkrdS | dv rdS | S )z� Return the host on which a client can connect to the given listener. >>> client_host('192.168.0.1') '192.168.0.1' >>> client_host('0.0.0.0') '127.0.0.1' >>> client_host('::') '::1' z0.0.0.0z 127.0.0.1)z::z::0z ::0.0.0.0z::1� )Zserver_hostr r �;/opt/saltstack/salt/lib/python3.10/site-packages/portend.py�client_host s r c @ s( e Zd Zd dd�Zd dd�Zdd� ZdS )�Checker� �?c C s || _ d S �N��timeout)�selfr r r r �__init__) � zChecker.__init__Nc C sb |du rt |tj�r|dd� \}}t�� dkrt|�}t�||tjtj �}t t�| j |�� dS )a� Assert that the given addr is free in that all attempts to connect fail within the timeout or raise a PortNotFree exception. >>> free_port = find_available_local_port() >>> Checker().assert_free('localhost', free_port) >>> Checker().assert_free('127.0.0.1', free_port) >>> Checker().assert_free('::1', free_port) Also accepts an addr tuple >>> addr = '::1', free_port, 0, 0 >>> Checker().assert_free(addr) Host might refer to a server bind address like '::', which should use localhost to perform the check. >>> Checker().assert_free('::', free_port) N� �Windows)� isinstancer �Sequence�platform�systemr �socket�getaddrinfo� AF_UNSPEC�SOCK_STREAM�list� itertools�starmap�_connect)r �host�port�infor r r �assert_free, s zChecker.assert_freec C s� t � |||�}|�| j� t�|��! z|�|� W n t jy+ Y W d � d S w W d � n1 s6w Y |d d� \}}d} t| jdi t � ����)Nr z Port {port} is in use on {host}.r ) r � settimeoutr � contextlib�closing�connect�error�PortNotFree�format�locals) r �af�socktype�proto� canonname�sa�sr r Ztmplr r r r I s ���zChecker._connect)r r )�__name__� __module__�__qualname__r r r r r r r r ( s r c @ � e Zd ZdS )�TimeoutN�r/ r0 r1 r r r r r3 Z � r3 c @ r2 )r&