name : config_ipset.cpython-39.pyc
a

���gI�@s�ddlZddlZddlmZddlmZmZmZddlm	Z	ddl
mZmZm
Z
mZddlmZddlmZddlmZmZmZmZdd	lmZdd
lmZGdd�de�ZdS)
�N)�config)�dbus_to_python�%dbus_introspection_prepare_properties�!dbus_introspection_add_properties)�IPSet)�IPSET_TYPES�normalize_ipset_entry�check_entry_overlaps_existing�check_for_overlapping_entries)�log)�DbusServiceObject)�handle_exceptions�dbus_handle_exceptions�dbus_service_method�dbus_polkit_require_auth)�errors)�
FirewallErrorcseZdZdZdZejjZe	�fdd��Z
edd��Zedd��Z
ed	d
��Zeejddd
�edWdd���Zeejddd
�edXdd���Zeejj�eejdd�edYdd����Zejjejdd�dd��Zeejj�eejdd�edZ�fdd�	���Zeejjejd�ed[d d!���Zeejjejd�ed\d"d#���Zeejj�ed]d$d%���Z ejjejjdd�ed&d'���Z!eejj�ed^d(d)���Z"ejjejjdd�ed*d+���Z#eejjdd�ed_d,d-���Z$ejjejjdd�ed.d/���Z%eejjdd�ed`d0d1���Z&eejjdd�edad2d3���Z'eejjdd�edbd4d5���Z(eejjdd�edcd6d7���Z)eejjdd�eddd8d9���Z*eejjdd�eded:d;���Z+eejjdd�edfd<d=���Z,eejjdd�edgd>d?���Z-eejjd@d�edhdAdB���Z.eejjd@d�edidCdD���Z/eejjdd�edjdEdF���Z0eejjdd�edkdGdH���Z1eejjddId
�edldJdK���Z2eejjdLd�edmdMdN���Z3eejjdLd�edndOdP���Z4eejjdd�edodQdR���Z5eejjdd�edpdSdT���Z6eejjddId
�edqdUdV���Z7�Z8S)r�FirewallDConfigIPSetzFirewallD main classTcs`tt|�j|i|��||_||_||_||_|d|_|d|_d|j|_	t
|tjj�dS)Nr�zconfig.ipset.%d)
�superr�__init__�parentr�obj�item_id�busname�path�_log_prefixr�dbus�DBUS_INTERFACE_CONFIG_IPSET)�selfrZconfZipsetr�args�kwargs��	__class__��@/usr/lib/python3.9/site-packages/firewall/server/config_ipset.pyr6s

�zFirewallDConfigIPSet.__init__cCsdS�Nr$�rr$r$r%�__del__CszFirewallDConfigIPSet.__del__cCs|��dSr&)Zremove_from_connectionr'r$r$r%�
unregisterGszFirewallDConfigIPSet.unregistercCs�|dkrt�|jj�S|dkr,t�|jj�S|dkrBt�|jj�S|dkrXt�|jj�S|dkrnt�|jj�Stj	�
d|��dS)N�name�filenamer�default�builtinzDorg.freedesktop.DBus.Error.InvalidArgs: Property '%s' does not exist)r�Stringrr*r+rZBooleanr,r-�
exceptions�
DBusException)r�
property_namer$r$r%�
_get_propertyOs��z"FirewallDConfigIPSet._get_property�ss�v)�in_signature�
out_signatureNcCsLt|t�}t|t�}t�d|j||�|tjjkrBtj�	d|��|�
|�S)Nz%s.Get('%s', '%s')�Jorg.freedesktop.DBus.Error.UnknownInterface: Interface '%s' does not exist)r�strr�debug1rrrrr/r0r2)r�interface_namer1�senderr$r$r%�Get`s


���zFirewallDConfigIPSet.Get�sza{sv}cCs`t|t�}t�d|j|�|tjjkr6tj�	d|��i}dD]}|�
|�||<q>tj|dd�S)Nz%s.GetAll('%s')r7)r*r+rr,r-�sv�Z	signature)rr8rr9rrrrr/r0r2Z
Dictionary)rr:r;�ret�xr$r$r%�GetAllqs
��zFirewallDConfigIPSet.GetAllZssv)r5cCslt|t�}t|t�}t|�}t�d|j|||�|j�|�|tjj	krXtj
�d|��tj
�d|��dS)Nz%s.Set('%s', '%s', '%s')r7zGorg.freedesktop.DBus.Error.PropertyReadOnly: Property '%s' is read-only)rr8rr9rr�accessCheckrrrr/r0)rr:r1Z	new_valuer;r$r$r%�Set�s$


�����zFirewallDConfigIPSet.Setzsa{sv}asr?cCs2t|t�}t|�}t|�}t�d|j|||�dS)Nz&%s.PropertiesChanged('%s', '%s', '%s'))rr8rr9r)rr:Zchanged_propertiesZinvalidated_propertiesr$r$r%�PropertiesChanged�s

�z&FirewallDConfigIPSet.PropertiesChanged)r6cs8t�d|j�tt|��|j|j���}t	||t
jj�S)Nz%s.Introspect())
rZdebug2rrr�
IntrospectrrZget_busrrrr)rr;�datar"r$r%rF�s
�
�zFirewallDConfigIPSet.IntrospectcCst�d|j�|j�|j�S)zget settings for ipset
        z%s.getSettings())rr9rrZget_ipset_configr�rr;r$r$r%�getSettings�sz FirewallDConfigIPSet.getSettingscCsFt|�}t�d|j�|j�|�|j�|j|�|_|�	|jj
�dS)z"update settings for ipset
        z%s.update('...')N)rrr9rrrCrZset_ipset_configr�Updatedr*)r�settingsr;r$r$r%�update�s
zFirewallDConfigIPSet.updatecCs<t�d|j�|j�|�|j�|j�|_|�|jj	�dS)z0load default settings for builtin ipset
        z%s.loadDefaults()N)
rr9rrrCrZload_ipset_defaultsrrJr*rHr$r$r%�loadDefaults�sz!FirewallDConfigIPSet.loadDefaultscCst�d|j|f�dS)Nz%s.Updated('%s')�rr9r�rr*r$r$r%rJ�szFirewallDConfigIPSet.UpdatedcCs:t�d|j�|j�|�|j�|j�|j�|j�dS)zremove ipset
        z%s.remove()N)	rr9rrrCrZremove_ipsetrZremoveIPSetrHr$r$r%�remove�szFirewallDConfigIPSet.removecCst�d|j|f�dS)Nz%s.Removed('%s')rNrOr$r$r%�Removed�szFirewallDConfigIPSet.RemovedcCsFt|t�}t�d|j|�|j�|�|j�|j	|�|_	|�
|�dS)zrename ipset
        z%s.rename('%s')N)rr8rr9rrrCrZrename_ipsetr�Renamed)rr*r;r$r$r%�rename�s

zFirewallDConfigIPSet.renamecCst�d|j|f�dS)Nz%s.Renamed('%s')rNrOr$r$r%rR�szFirewallDConfigIPSet.RenamedcCst�d|j�|��dS)Nz%s.getVersion()r�rr9rrIrHr$r$r%�
getVersion�szFirewallDConfigIPSet.getVersioncCsHt|t�}t�d|j|�|j�|�t|���}||d<|�	|�dS)Nz%s.setVersion('%s')r�
rr8rr9rrrC�listrIrL)r�versionr;rKr$r$r%�
setVersions
zFirewallDConfigIPSet.setVersioncCst�d|j�|��dS)Nz
%s.getShort()rrTrHr$r$r%�getShortszFirewallDConfigIPSet.getShortcCsHt|t�}t�d|j|�|j�|�t|���}||d<|�	|�dS)Nz%s.setShort('%s')rrV)rZshortr;rKr$r$r%�setShorts
zFirewallDConfigIPSet.setShortcCst�d|j�|��dS)Nz%s.getDescription()�rTrHr$r$r%�getDescription#sz#FirewallDConfigIPSet.getDescriptioncCsHt|t�}t�d|j|�|j�|�t|���}||d<|�	|�dS)Nz%s.setDescription('%s')r\rV)r�descriptionr;rKr$r$r%�setDescription*s

�z#FirewallDConfigIPSet.setDescriptioncCst�d|j�|��dS)Nz%s.getType()�rTrHr$r$r%�getType8szFirewallDConfigIPSet.getTypecCs\t|t�}t�d|j|�|j�|�|tvr:tt	j
|��t|���}||d<|�
|�dS)Nz%s.setType('%s')r`)rr8rr9rrrCrrrZINVALID_TYPErWrIrL)rZ
ipset_typer;rKr$r$r%�setType?s
zFirewallDConfigIPSet.setTypeza{ss}cCst�d|j�|��dS)Nz%s.getOptions()�rTrHr$r$r%�
getOptionsNszFirewallDConfigIPSet.getOptionscCsLt|t�}t�d|jt|��|j�|�t|�	��}||d<|�
|�dS)Nz%s.setOptions('[%s]')rc)r�dictrr9r�reprrrCrWrIrL)r�optionsr;rKr$r$r%�
setOptionsUs

�zFirewallDConfigIPSet.setOptionscCs�t|t�}t|t�}t�d|j||�|j�|�t|���}||dvrn|d||krnt	t
jd||f��||d|<|�|�dS)Nz%s.addOption('%s', '%s')rcz
'%s': '%s')
rr8rr9rrrCrWrIrr�ALREADY_ENABLEDrL�r�key�valuer;rKr$r$r%�	addOptionas


�zFirewallDConfigIPSet.addOptioncCsbt|t�}t�d|j|�|j�|�t|���}||dvrJt	t
j|��|d|=|�|�dS)Nz%s.removeOption('%s')rc)
rr8rr9rrrCrWrIrr�NOT_ENABLEDrL)rrkr;rKr$r$r%�removeOptionps

z!FirewallDConfigIPSet.removeOption�bcCsNt|t�}t|t�}t�d|j||�t|���}||dvoL|d||kS)Nz%s.queryOption('%s', '%s')rc)rr8rr9rrWrIrjr$r$r%�queryOption}s

�z FirewallDConfigIPSet.queryOption�ascCst�d|j�|��dS)Nz%s.getEntries()�rTrHr$r$r%�
getEntries�szFirewallDConfigIPSet.getEntriescCs|t|t�}t|�t�d|jd�|��|j�|�t|�	��}d|dvrf|dddkrft
tj��||d<|�
|�dS)Nz%s.setEntries('[%s]')�,�timeoutrc�0rs)rrWr
rr9r�joinrrCrIrr�IPSET_WITH_TIMEOUTrL)r�entriesr;rKr$r$r%�
setEntries�s

�
zFirewallDConfigIPSet.setEntriescCs�t|t�}t|�}t�d|j|�|j�|�t|�	��}d|dvr`|dddkr`t
tj��||dvrxt
tj
|��t||d�|d�|�|�|�dS)Nz%s.addEntry('%s')rvrcrwrs)rr8rrr9rrrCrWrIrrryrir	�appendrL�r�entryr;rKr$r$r%�addEntry�s

zFirewallDConfigIPSet.addEntrycCs�t|t�}t|�}t�d|j|�|j�|�t|�	��}d|dvr`|dddkr`t
tj��||dvrxt
tj
|��|d�|�|�|�dS)Nz%s.removeEntry('%s')rvrcrwrs)rr8rrr9rrrCrWrIrrryrnrPrLr}r$r$r%�removeEntry�s

z FirewallDConfigIPSet.removeEntrycCs`t|t�}t|�}t�d|j|�t|���}d|dvrT|dddkrTtt	j
��||dvS)Nz%s.queryEntry('%s')rvrcrwrs)rr8rrr9rrWrIrrryr}r$r$r%�
queryEntry�s

zFirewallDConfigIPSet.queryEntry)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)9�__name__�
__module__�__qualname__�__doc__Z
persistentrrZPK_ACTION_CONFIGZdefault_polkit_auth_requiredr
rrr(r)r2rZPROPERTIES_IFACEr<rBrrDZservice�signalrEZPK_ACTION_INFOZINTROSPECTABLE_IFACErFrrZDBUS_SIGNATURErIrLrMrJrPrQrSrRrUrYrZr[r]r_rarbrdrhrmrorqrtr{rr�r��
__classcell__r$r$r"r%r.s0


��


��	


���
��
������	��
�
����
�r)rZdbus.serviceZfirewallrZfirewall.dbus_utilsrrrZfirewall.core.io.ipsetrZfirewall.core.ipsetrrr	r
Zfirewall.core.loggerrZfirewall.server.dbusrZfirewall.server.decoratorsr
rrrrZfirewall.errorsrrr$r$r$r%�<module>s

© 2025 Cubjrnet7