관리-도구
편집 파일: portconquery.cpython-39.opt-1.pyc
a ����q�qe����������������������@���s~���d�dl�Z�d�dlmZmZ�d�dlmZmZmZmZ�ddl m Z �ddlmZ�ddl mZmZmZ�ddlmZ�G�d d ��d e e�ZdS�)�����N)�IPPROTO_TCP�IPPROTO_UDP)�Iterable�Optional�Tuple�Union����)�MatchContext)�PolicyQuery)�Portcon�PortconRange�PortconProtocol)�match_rangec�����������������������s����e�Zd�ZU�dZdZee�ed<�dZee �ed<�dZ eed<�dZeed<�dZ eed<�dZeed <�eee �d �dd��Zejeeeef��dd �dd��Zeee�d �dd��Zejeeeef��dd �dd��Zdd ���fdd�Zee�d �dd�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. N� _protocol�_portsF�ports_subset� ports_overlap�ports_superset�ports_proper)�returnc�����������������C���s���|�j�S��N)r�����self��r����:/usr/lib64/python3.9/site-packages/setools/portconquery.py�portsD���s����zPortconQuery.ports)�valuer���c�����������������C���sb���|rXt�|��}t|�r^|jdk�s(|jdk�r6td�|���|j|jkrPtd�|���||�_nd�|�_d�S�)Nr���z/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���r���Z pending_portsr���r���r���r���H���s�������c�����������������C���s���|�j�S�r���)r���r���r���r���r����protocol[���s����zPortconQuery.protocolc�����������������C���s���|rt��|�|�_nd�|�_d�S�r���)r ����lookupr���)r���r���r���r���r���r!���_���s����c��������������������s(���t�t|��j|fi�|���t�t�|�_d�S�r���)�superr����__init__�loggingZ getLogger�__name__�log)r����policy�kwargs�� __class__r���r���r$���f���s����zPortconQuery.__init__c�����������������c���s����|�j��d�|����|�j��d�|����|�j��d�|����|��|�j���|�j���D�]R}|�jrvt|j|�j|�j |�j |�j|�j�svqL|�j r�|�j |j kr�qL|��|j�s�qL|V��qLdS�)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_debugr(���Zportconsr���r���r���r���r���r���r!���Z_match_context�context)r���Zportconr���r���r����resultsj���s*���� ��zPortconQuery.results)r&���� __module__�__qualname__�__doc__r���r���r ����__annotations__r���r���r����boolr���r���r����propertyr����setterr����intr!���r����strr$���r���r���r/���� __classcell__r���r���r*���r���r������s"��� ,r���)r%���Zsocketr���r����typingr���r���r���r���Zmixinsr ����queryr ���Z policyrepr���r���r ����utilr���r���r���r���r���r����<module>���s���