Sindbad~EG File Manager

Current Path : /usr/lib64/python3.6/site-packages/setools/__pycache__/
Upload File :
Current File : //usr/lib64/python3.6/site-packages/setools/__pycache__/portconquery.cpython-36.opt-1.pyc

3

�^.�@sbddlZddlmZmZddlmZddlmZddlm	Z	m
Z
ddlmZGdd	�d	ee�Z
dS)
�N)�IPPROTO_TCP�IPPROTO_UDP�)�MatchContext)�PolicyQuery)�PortconRange�PortconProtocol)�match_rangecsteZdZdZdZdZdZdZdZdZ	e
dd��Zejdd��Ze
dd��Z
e
jd	d��Z
�fd
d�Zdd
�Z�ZS)�PortconQuerya_
    Port context query.

    Parameter:
    policy          The policy to query.

    Keyword Parameters/Class attributes:
    protocol        The protocol to match (socket.IPPROTO_TCP for
                    TCP or socket.IPPROTO_UDP for UDP)

    ports           A 2-tuple of the port range to match. (Set both to
                    the same value for a single port)
    ports_subset    If true, the criteria will match if it is a subset
                    of the portcon's range.
    ports_overlap   If true, the criteria will match if it overlaps
                    any of the portcon's range.
    ports_superset  If true, the criteria will match if it is a superset
                    of the portcon's range.
    ports_proper    If true, use proper superset/subset operations.
                    No effect if not using set operations.

    user            The criteria to match the context's user.
    user_regex      If true, regular expression matching
                    will be used on the user.

    role            The criteria to match the context's role.
    role_regex      If true, regular expression matching
                    will be used on the role.

    type_           The criteria to match the context's type.
    type_regex      If true, regular expression matching
                    will be used on the type.

    range_          The criteria to match the context's range.
    range_subset    If true, the criteria will match if it is a subset
                    of the context's range.
    range_overlap   If true, the criteria will match if it overlaps
                    any of the context's range.
    range_superset  If true, the criteria will match if it is a superset
                    of the context's range.
    range_proper    If true, use proper superset/subset operations.
                    No effect if not using set operations.
    NFcCs|jS)N)�_ports)�self�r
�$/usr/lib64/python3.6/portconquery.py�portsQszPortconQuery.portscCs^t|�}t|�rT|jdks$|jdkr2tdj|���|j|jkrLtdj|���||_nd|_dS)Nrz/Port numbers must be positive: {0.low}-{0.high}zAThe low port must be smaller than the high port: {0.low}-{0.high})r�allZlowZhigh�
ValueError�formatr)r�valueZ
pending_portsr
r
rrUscCs|jS)N)�	_protocol)rr
r
r�protocolgszPortconQuery.protocolcCs|rtj|�|_nd|_dS)N)r�lookupr)rrr
r
rrkscs$tt|�j|f|�tjt�|_dS)N)�superr
�__init__�loggingZ	getLogger�__name__�log)r�policy�kwargs)�	__class__r
rrrszPortconQuery.__init__ccs�|jjdj|��|jjdj|��|jjdj|��|j|j�xb|jj�D]T}|jrzt|j|j|j	|j
|j|j�rzqN|j
r�|j
|j
kr�qN|j|j�s�qN|VqNWdS)z-Generator which yields all matching portcons.z*Generating portcon results from {0.policy}z~Ports: {0.ports}, overlap: {0.ports_overlap}, subset: {0.ports_subset}, superset: {0.ports_superset}, proper: {0.ports_proper}zProtocol: {0.protocol!r}N)r�infor�debugZ_match_context_debugrZportconsrr	�ports_subset�
ports_overlap�ports_superset�ports_properrZ_match_context�context)rZportconr
r
r�resultsvs&

zPortconQuery.results)r�
__module__�__qualname__�__doc__rrr!r"r#r$�propertyr�setterrrr&�
__classcell__r
r
)rrr
s,r
)rZsocketrrZmixinsrZqueryrZ	policyreprr�utilr	r
r
r
r
r�<module>s

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists