File: //lib/python3/dist-packages/apparmor/rule/__pycache__/signal.cpython-310.pyc
o
%`b�% � @ sx d dl Z d dlmZmZ d dlmZmZ d dlmZm Z m
Z
mZmZm
Z
d dlmZ e� Zg d�Zg d�Zdd gZee e Zg d
�Ze �d�Zdd
�e� d Zed
d e d d e d d ZdZde d
d e d d e d d Ze �de d d d e d d d ed d d �Ze �d �Ze �d!�Ze �d"�Z e �d#�Z!G d$d%� d%e�Z"G d&d'� d'e �Z#dS )(� N)�RE_PROFILE_SIGNAL�RE_PROFILE_NAME)�AppArmorBug�AppArmorException)�BaseRule�BaseRuleset�check_and_split_list�logprof_value_or_all�parse_modifiers�quote_if_needed)�init_translation)�receive�r�read)�send�w�write�rw�wr)!�hup�int�quit�ill�trap�abrt�bus�fpe�kill�usr1�segv�usr2�pipe�alrm�term�stkflt�chld�cont�stop�stp�ttin�ttou�urg�xcpu�xfsz�vtalrm�prof�winch�io�pwr�sys�emt�existsz#^rtmin\+0*([0-9]|[12][0-9]|3[0-2])$z\s*(�|z)\s*z\(�(z(\s|,)+z)*z\)z\s*([a-z0-9+]+|"[a-z0-9+]+")\s*z
set\s*=\s*zset\s*=\s*\(z^(\s+(?P<access>z))?z(?P<signal>z(\s+(z))+z)?z
(\s+(peer=�peerz\s*$zset\s*=\s*\(([^)]*)\)zset\s*=z\((.*)\)z
"([a-z0-9]+)"c sx e Zd ZdZG dd� de�ZeZdZ d� fdd � Ze d
d� �Z
e dd
� �Zddd�Zdd� Z
dd� Zdd� Z� ZS )�
SignalRulez.Class to handle and store a single signal rulec @ s e Zd ZdS )zSignalRule.__SignalAllN)�__name__�
__module__�__qualname__� r= r= �6/usr/lib/python3/dist-packages/apparmor/rule/signal.py�__SignalAllE s r? �signalF� Nc s� t t| �j|||||d� t|ttjdd�\| _| _} | r(tt d�d�
| � ��t|ttjdd�\| _| _
} | rP| D ]}
t�|
�rH| j�|
� q:tt d�|
��| j|dd |d
�\| _| _d S )N)�audit�deny�
allow_keyword�comment� log_eventr9 �accessz/Passed unknown access keyword to SignalRule: %s� r@ z/Passed unknown signal keyword to SignalRule: %sr8 F)�is_pathrF )�superr9 �__init__r �access_keywords�ALLrG �
all_accessr �_�join�signal_keywordsr@ �all_signals�RE_SIGNAL_REALTIME�match�add�_aare_or_allr8 � all_peers)�selfrG r@ r8 rB rC rD rE rF �
unknown_items�item�� __class__r= r>