name : config_service.cpython-39.pyc
a

���g_u�@s�ddlZddlZddlmZddlmZmZmZddlm	Z	ddl
mZddlm
Z
mZmZmZddlmZddlmZGd	d
�d
e�ZdS)�N)�config)�dbus_to_python�%dbus_introspection_prepare_properties�!dbus_introspection_add_properties)�log)�DbusServiceObject)�handle_exceptions�dbus_handle_exceptions�dbus_service_method�dbus_polkit_require_auth)�errors)�
FirewallErrorcs�eZdZdZdZejjZe	�fdd��Z
edd��Zedd��Z
ed	d
��Zeejddd
�ed�dd���Zeejddd
�ed�dd���Zeejj�eejdd�ed�dd����Zejjejdd�dd��Zeejj�eejdd�ed��fdd�	���Zeejjd d�ed�d!d"���Zeejjdd�ed�d#d$���Zeejjd d�ed�d%d&���Zeejjdd�ed�d'd(���Zeejj�ed�d)d*���Z ejjejjdd�ed+d,���Z!eejj�ed�d-d.���Z"ejjejjdd�ed/d0���Z#eejjdd�ed�d1d2���Z$ejjejjdd�ed3d4���Z%eejjdd�ed�d5d6���Z&eejjdd�ed�d7d8���Z'eejjdd�ed�d9d:���Z(eejjdd�ed�d;d<���Z)eejjdd�ed�d=d>���Z*eejjdd�ed�d?d@���Z+eejjdAd�ed�dBdC���Z,eejjdAd�ed�dDdE���Z-eejjdd�ed�dFdG���Z.eejjdd�ed�dHdI���Z/eejjddJd
�ed�dKdL���Z0eejjdMd�ed�dNdO���Z1eejjdMd�ed�dPdQ���Z2eejjdd�ed�dRdS���Z3eejjdd�ed�dTdU���Z4eejjddJd
�ed�dVdW���Z5eejjdAd�ed�dXdY���Z6eejjdAd�ed�dZd[���Z7eejjdd�ed�d\d]���Z8eejjdd�ed�d^d_���Z9eejjddJd
�ed�d`da���Z:eejjdMd�ed�dbdc���Z;eejjdMd�ed�ddde���Z<eejjdd�ed�dfdg���Z=eejjdd�ed�dhdi���Z>eejjddJd
�ed�djdk���Z?eejjdld�ed�dmdn���Z@eejjdld�ed�dodp���ZAeejjddd
�ed�dqdr���ZBeejjdd�ed�dsdt���ZCeejjdd�ed�dudv���ZDeejjddJd
�ed�dwdx���ZEeejjdMd�ed�dydz���ZFeejjdMd�ed�d{d|���ZGeejjdd�ed�d}d~���ZHeejjdd�ed�dd����ZIeejjddJd
�ed�d�d����ZJ�ZKS)��FirewallDConfigServicezFirewallD main classTcs`tt|�j|i|��||_||_||_||_|d|_|d|_d|j|_	t
|tjj�dS)Nr�zconfig.service.%d)
�superr�__init__�parentr�obj�item_id�busname�path�_log_prefixr�dbus�DBUS_INTERFACE_CONFIG_SERVICE)�selfrZconf�servicer�args�kwargs��	__class__��B/usr/lib/python3.9/site-packages/firewall/server/config_service.pyr2s

�zFirewallDConfigService.__init__cCsdS�Nr �rr r r!�__del__?szFirewallDConfigService.__del__cCs|��dSr")Zremove_from_connectionr#r r r!�
unregisterCsz!FirewallDConfigService.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_propertyKs��z$FirewallDConfigService._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+r,r.)r�interface_namer-�senderr r r!�Get\s


���zFirewallDConfigService.Get�sza{sv}cCs`t|t�}t�d|j|�|tjjkr6tj�	d|��i}dD]}|�
|�||<q>tj|dd�S)Nz%s.GetAll('%s')r3)r&r'rr(r)�sv�Z	signature)rr4rr5rrrrr+r,r.Z
Dictionary)rr6r7�ret�xr r r!�GetAllms
��zFirewallDConfigService.GetAllZssv)r1cCslt|t�}t|t�}t|�}t�d|j|||�|j�|�|tjj	krXtj
�d|��tj
�d|��dS)Nz%s.Set('%s', '%s', '%s')r3zGorg.freedesktop.DBus.Error.PropertyReadOnly: Property '%s' is read-only)rr4rr5rr�accessCheckrrrr+r,)rr6r-Z	new_valuer7r r r!�Set~s$


�����zFirewallDConfigService.Setzsa{sv}asr;cCs2t|t�}t|�}t|�}t�d|j|||�dS)Nz&%s.PropertiesChanged('%s', '%s', '%s'))rr4rr5r)rr6Zchanged_propertiesZinvalidated_propertiesr r r!�PropertiesChanged�s

�z(FirewallDConfigService.PropertiesChanged)r2cs8t�d|j�tt|��|j|j���}t	||t
jj�S)Nz%s.Introspect())
rZdebug2rrr�
IntrospectrrZget_busrrrr)rr7�datarr r!rB�s
�
�z!FirewallDConfigService.Introspectz(sssa(ss)asa{ss}asa(ss))cCst�d|j�|j�|j�S)�!get settings for service
        z%s.getSettings())rr5rrZget_service_configr�rr7r r r!�getSettings�sz"FirewallDConfigService.getSettingscCst�d|j�|j�|j�S)rDz%s.getSettings2())rr5rr�get_service_config_dictrrEr r r!�getSettings2�sz#FirewallDConfigService.getSettings2cCsFt|�}t�d|j�|j�|�|j�|j|�|_|�	|jj
�dS)z$update settings for service
        z%s.update('...')N)rrr5rrr?rZset_service_configr�Updatedr&�r�settingsr7r r r!�update�s
zFirewallDConfigService.updatecCsFt|�}t�d|j�|j�|�|j�|j|�|_|�	|jj
�dS)Nz%s.update2('...'))rrr5rrr?r�set_service_config_dictrrIr&rJr r r!�update2�s
zFirewallDConfigService.update2cCs<t�d|j�|j�|�|j�|j�|_|�|jj	�dS)z2load default settings for builtin service
        z%s.loadDefaults()N)
rr5rrr?rZload_service_defaultsrrIr&rEr r r!�loadDefaults�sz#FirewallDConfigService.loadDefaultscCst�d|j|f�dS)Nz%s.Updated('%s')�rr5r�rr&r r r!rI�szFirewallDConfigService.UpdatedcCs:t�d|j�|j�|�|j�|j�|j�|j�dS)zremove service
        z%s.removeService()N)	rr5rrr?rZremove_servicerZ
removeServicerEr r r!�remove�szFirewallDConfigService.removecCst�d|j|f�dS)Nz%s.Removed('%s')rPrQr r r!�Removed�szFirewallDConfigService.RemovedcCsFt|t�}t�d|j|�|j�|�|j�|j	|�|_	|�
|�dS)zrename service
        z%s.rename('%s')N)rr4rr5rrr?rZrename_servicer�Renamed)rr&r7r r r!�rename�s

zFirewallDConfigService.renamecCst�d|j|f�dS)Nz%s.Renamed('%s')rPrQr r r!rTszFirewallDConfigService.RenamedcCst�d|j�|��dS)Nz%s.getVersion()r�rr5rrFrEr r r!�
getVersion	sz!FirewallDConfigService.getVersioncCsHt|t�}t�d|j|�|j�|�t|���}||d<|�	|�dS)Nz%s.setVersion('%s')r�
rr4rr5rrr?�listrFrL)r�versionr7rKr r r!�
setVersions
z!FirewallDConfigService.setVersioncCst�d|j�|��dS)Nz
%s.getShort()rrVrEr r r!�getShortszFirewallDConfigService.getShortcCsHt|t�}t�d|j|�|j�|�t|���}||d<|�	|�dS)Nz%s.setShort('%s')rrX)rZshortr7rKr r r!�setShort$s
zFirewallDConfigService.setShortcCst�d|j�|��dS)Nz%s.getDescription()�rVrEr r r!�getDescription1sz%FirewallDConfigService.getDescriptioncCsHt|t�}t�d|j|�|j�|�t|���}||d<|�	|�dS)Nz%s.setDescription('%s')r^rX)r�descriptionr7rKr r r!�setDescription8s

�z%FirewallDConfigService.setDescriptionza(ss)cCst�d|j�|��dS)Nz
%s.getPorts()�rVrEr r r!�getPortsFszFirewallDConfigService.getPortscCs�g}t|t�D](}t|t�r,|�t|��q|�|�q|}t�d|jd�dd�|D���|j	�
|�t|���}||d<|�|�dS)Nz%s.setPorts('[%s]')�,css"|]}d|d|dfVqdS�z('%s, '%s')rrNr ��.0�portr r r!�	<genexpr>Z�z2FirewallDConfigService.setPorts.<locals>.<genexpr>rb�
rrY�
isinstance�append�tuplerr5r�joinrr?rFrL�rZportsr7Z_portsrhrKr r r!�setPortsMs

�zFirewallDConfigService.setPortscCs�t|t�}t|t�}t�d|j||�|j�|�t|���}||f|dvrbt	t
jd||f��|d�||f�|�
|�dS)Nz%s.addPort('%s', '%s')rb�%s:%s�rr4rr5rrr?rYrFr
r�ALREADY_ENABLEDrmrL�rrh�protocolr7rKr r r!�addPort`s

�
�zFirewallDConfigService.addPortcCs�t|t�}t|t�}t�d|j||�|j�|�t|���}||f|dvrbt	t
jd||f��|d�||f�|�
|�dS)Nz%s.removePort('%s', '%s')rbrr�rr4rr5rrr?rYrFr
r�NOT_ENABLEDrRrLrur r r!�
removePortps

�z!FirewallDConfigService.removePort�bcCs:t|t�}t|t�}t�d|j||�||f|��dvS)Nz%s.queryPort('%s', '%s')rb�rr4rr5rrF�rrhrvr7r r r!�	queryPorts

�z FirewallDConfigService.queryPort�ascCst�d|j�|��dS)Nz%s.getProtocols()�rVrEr r r!�getProtocols�sz#FirewallDConfigService.getProtocolscCsNt|t�}t�d|jd�|��|j�|�t|���}||d<|�	|�dS)Nz%s.setProtocols('[%s]')rdr�)
rrYrr5rrorr?rFrL)rZ	protocolsr7rKr r r!�setProtocols�s

�z#FirewallDConfigService.setProtocolscCsft|t�}t�d|j|�|j�|�t|���}||dvrJt	t
j|��|d�|�|�
|�dS)Nz%s.addProtocol('%s')r�rs�rrvr7rKr r r!�addProtocol�s
z"FirewallDConfigService.addProtocolcCsft|t�}t�d|j|�|j�|�t|���}||dvrJt	t
j|��|d�|�|�
|�dS)Nz%s.removeProtocol('%s')r�rxr�r r r!�removeProtocol�s
z%FirewallDConfigService.removeProtocolcCs*t|t�}t�d|j|�||��dvS)Nz%s.queryProtocol(%s')r�r|)rrvr7r r r!�
queryProtocol�s
z$FirewallDConfigService.queryProtocolcCst�d|j�|��dS)Nz%s.getSourcePorts()�rVrEr r r!�getSourcePorts�sz%FirewallDConfigService.getSourcePortscCs�g}t|t�D](}t|t�r,|�t|��q|�|�q|}t�d|jd�dd�|D���|j	�
|�t|���}||d<|�|�dS)Nz%s.setSourcePorts('[%s]')rdcss"|]}d|d|dfVqdSrer rfr r r!ri�rjz8FirewallDConfigService.setSourcePorts.<locals>.<genexpr>r�rkrpr r r!�setSourcePorts�s

�z%FirewallDConfigService.setSourcePortscCs�t|t�}t|t�}t�d|j||�|j�|�t|���}||f|dvrbt	t
jd||f��|d�||f�|�
|�dS)Nz%s.addSourcePort('%s', '%s')r�rrrsrur r r!�
addSourcePort�s

�
�z$FirewallDConfigService.addSourcePortcCs�t|t�}t|t�}t�d|j||�|j�|�t|���}||f|dvrbt	t
jd||f��|d�||f�|�
|�dS)Nz%s.removeSourcePort('%s', '%s')r�rrrxrur r r!�removeSourcePort�s

�z'FirewallDConfigService.removeSourcePortcCs:t|t�}t|t�}t�d|j||�||f|��dvS)Nz%s.querySourcePort('%s', '%s')r�r|r}r r r!�querySourcePort�s

�z&FirewallDConfigService.querySourcePortcCst�d|j�|��dS)Nz%s.getModules()�rVrEr r r!�
getModulessz!FirewallDConfigService.getModulescCs�t|t�}g}|D]8}|�d�r@|�dd�}d|vr@|�dd�}|�|�q|}t�d|jd�|��|j	�
|�t|���}||d<|�|�dS)N�
nf_conntrack_��_�-z%s.setModules('[%s]')rdr�)
rrY�
startswith�replacermrr5rrorr?rFrL)r�modulesr7Z_modules�modulerKr r r!�
setModuless 


�z!FirewallDConfigService.setModulescCs�t|t�}|�d�r4|�dd�}d|vr4|�dd�}t�d|j|�|j�|�t	|�
��}||dvrtttj
|��|d�|�|�|�dS)Nr�r�r�r�z%s.addModule('%s')r�)rr4r�r�rr5rrr?rYrFr
rrtrmrL�rr�r7rKr r r!�	addModule"s

z FirewallDConfigService.addModulecCs�t|t�}|�d�r4|�dd�}d|vr4|�dd�}t�d|j|�|j�|�t	|�
��}||dvrtttj
|��|d�|�|�|�dS)Nr�r�r�r�z%s.removeModule('%s')r�)rr4r�r�rr5rrr?rYrFr
rryrRrLr�r r r!�removeModule3s

z#FirewallDConfigService.removeModulecCsTt|t�}|�d�r4|�dd�}d|vr4|�dd�}t�d|j|�||��dvS)Nr�r�r�r�z%s.queryModule('%s')r�)rr4r�r�rr5rrF)rr�r7r r r!�queryModuleDs

z"FirewallDConfigService.queryModuleza{ss}cCst�d|j�|��dS)Nz%s.getDestinations()�rVrEr r r!�getDestinationsRsz&FirewallDConfigService.getDestinationscCsVt|t�}t�d|j|�d�|�d��|j�|�t|�	��}||d<|�
|�dS)Nz*%s.setDestinations({ipv4:'%s', ipv6:'%s'})Zipv4Zipv6r�)r�dictrr5r�getrr?rYrFrL)rZdestinationsr7rKr r r!�setDestinationsYs
�z&FirewallDConfigService.setDestinationscCsVt|t�}t�d|j|�|j�|�t|���}||dvrJt	t
j|��|d|S)Nz%s.getDestination('%s')r�)rr4rr5rrr?rYrFr
rry�r�familyr7rKr r r!�getDestinationfs

�z%FirewallDConfigService.getDestinationcCs�t|t�}t|t�}t�d|j||�|j�|�t|���}||dvrn|d||krnt	t
jd||f��||d|<|�|�dS)Nz%s.setDestination('%s', '%s')r�z
'%s': '%s')
rr4rr5rrr?rYrFr
rrtrL�rr��addressr7rKr r r!�setDestinationss


�
�z%FirewallDConfigService.setDestinationcCsbt|t�}t�d|j|�|j�|�t|���}||dvrJt	t
j|��|d|=|�|�dS)Nz%s.removeDestination('%s')r�)
rr4rr5rrr?rYrFr
rryrLr�r r r!�removeDestination�s

�
z(FirewallDConfigService.removeDestinationcCsJt|t�}t|t�}t�d|j||�|��}||dvoH||d|kS)Nz%s.queryDestination('%s', '%s')r�r|r�r r r!�queryDestination�s


��z'FirewallDConfigService.queryDestinationcCs<t�d|j�|j�|�|j�|j�}d|vr8|dSgS)Nz%s.getIncludes()�includes)rr5rrr?rrGr)rr7rKr r r!�getIncludes�sz"FirewallDConfigService.getIncludescCsZt|t�}t�d|j|�|j�|�d|dd�i}|j�|j	|�|_	|�
|j	j�dS)Nz%s.setIncludes('%s')r�)rrYrr5rrr?rrMrrIr&)rr�r7rKr r r!�setIncludes�s
z"FirewallDConfigService.setIncludescCsjt|t�}t�d|j|�|j�|�|j�|j	�}|�
dg��|�|j�|j	|�|_	|�
|j	j�dS)Nz%s.addInclude('%s')r�)rr4rr5rrr?rrGr�
setdefaultrmrMrIr&�rZincluder7rKr r r!�
addInclude�s
z!FirewallDConfigService.addIncludecCsft|t�}t�d|j|�|j�|�|j�|j	�}|d�
|�|j�|j	|�|_	|�|j	j
�dS)Nz%s.removeInclude('%s')r�)rr4rr5rrr?rrGrrRrMrIr&r�r r r!�
removeInclude�s
z$FirewallDConfigService.removeIncludecCs@t|t�}t�d|j|�|j�|j�}d|vr<||dvSdS)Nz%s.queryInclude('%s')r�F)rr4rr5rrrGrr�r r r!�queryInclude�s
z#FirewallDConfigService.queryInclude)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)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)N)L�__name__�
__module__�__qualname__�__doc__Z
persistentrrZPK_ACTION_CONFIGZdefault_polkit_auth_requiredrrr	r$r%r.r
ZPROPERTIES_IFACEr8r>rr@r�signalrAZPK_ACTION_INFOZINTROSPECTABLE_IFACErBrrFrHrLrNrOrIrRrSrUrTrWr[r\r]r_rarcrqrwrzr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��
__classcell__r r rr!r*s


��


���	�
�
��	���
��
�����
��	��	�
�
����
��	�������
�
�
�����	�	�r)rZdbus.serviceZfirewallrZfirewall.dbus_utilsrrrZfirewall.core.loggerrZfirewall.server.dbusrZfirewall.server.decoratorsrr	r
rrZfirewall.errorsr
rr r r r!�<module>s

© 2025 Cubjrnet7