<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
YjD                 @   s   d dl mZ d dlZeejd< d dlZd dlZd dlZd dlZd dl	m
Z
 d dlmZmZmZ d dlmZ d dlmZ d dlmZmZmZ d d	l	mZ d d
lmZ G dd dejjjZdS )    )GObjectNZgobject)config)dbus_to_python%dbus_introspection_prepare_properties!dbus_introspection_add_properties)Helper)log)handle_exceptionsdbus_handle_exceptionsdbus_service_method)errors)FirewallErrorc                   s   e Zd ZdZdZejjZe	 fddZ
edd Zedd Zed	d
 ZeejdddedTddZeejdddedUddZejjjejjeejddedVddZejjejdddd ZejjjejjeejddedW fdd	ZeejjejdedXd d!Z eejjejdedYd"d#Z!eejjedZd$d%Z"ejjejjdded&d' Z#eejjed[d(d)Z$ejjejjdded*d+ Z%eejjdded\d,d-Z&ejjejjdded.d/ Z'eejjdded]d0d1Z(eejjdded^d2d3Z)eejjdded_d4d5Z*eejjdded`d6d7Z+eejjddedad8d9Z,eejjddedbd:d;Z-eejjddedcd<d=Z.eejjddeddd>d?Z/eejjdd@dededAdBZ0eejjddedfdCdDZ1eejjddedgdEdFZ2eejjdd@dedhdGdHZ3eejjdIdedidJdKZ4eejjdIdedjdLdMZ5eejjddedkdNdOZ6eejjddedldPdQZ7eejjdd@dedmdRdSZ8  Z9S )nFirewallDConfigHelperzFirewallD main classTc                s\   t t| j|| || _|| _|| _|| _|d | _|d | _d| j | _	t
| tjj d S )Nr      zconfig.helper.%d)superr   __init__parentr   objitem_idbusnamepath_log_prefixr   dbusDBUS_INTERFACE_CONFIG_HELPER)selfr   Zconfhelperr   argskwargs)	__class__ #/usr/lib/python3.6/config_helper.pyr   8   s    

zFirewallDConfigHelper.__init__c             C   s   d S )Nr   )r   r   r   r    __del__E   s    zFirewallDConfigHelper.__del__c             C   s   | j   d S )N)Zremove_from_connection)r   r   r   r    
unregisterI   s    z FirewallDConfigHelper.unregisterc             C   s   |dkrt j| jjS |dkr,t j| jjS |dkrBt j| jjS |dkrXt j| jjS |dkrnt j| jjS t j	j
d| d S )Nnamefilenamer   defaultbuiltinzDorg.freedesktop.DBus.Error.InvalidArgs: Property '%s' does not exist)r   Stringr   r#   r$   r   ZBooleanr%   r&   
exceptionsDBusException)r   property_namer   r   r    _get_propertyQ   s    z#FirewallDConfigHelper._get_propertyZssv)in_signatureout_signatureNc             C   sL   t |t}t |t}tjd| j|| |tjjkrBtjj	d| | j
|S )Nz%s.Get('%s', '%s')zJorg.freedesktop.DBus.Error.UnknownInterface: Interface '%s' does not exist)r   strr   debug1r   r   r   r   r(   r)   r+   )r   interface_namer*   senderr   r   r    Getb   s    


zFirewallDConfigHelper.Getsza{sv}c             C   sd   t |t}tjd| j| |tjjkr6tjj	d| i }xd
D ]}| j
|||< q@W tj|dd	S )Nz%s.GetAll('%s')zJorg.freedesktop.DBus.Error.UnknownInterface: Interface '%s' does not existr#   r$   r   r%   r&   Zsv)	signature)r#   r$   r   r%   r&   )r   r/   r   r0   r   r   r   r   r(   r)   r+   Z
Dictionary)r   r1   r2   retxr   r   r    GetAlls   s    

zFirewallDConfigHelper.GetAllZssv)r-   c             C   sl   t |t}t |t}t |}tjd| j||| | jj| |tjj	krXtj
jd| tj
jd| d S )Nz%s.Set('%s', '%s', '%s')zJorg.freedesktop.DBus.Error.UnknownInterface: Interface '%s' does not existzGorg.freedesktop.DBus.Error.PropertyReadOnly: Property '%s' is read-only)r   r/   r   r0   r   r   accessCheckr   r   r   r(   r)   )r   r1   r*   Z	new_valuer2   r   r   r    Set   s    



zFirewallDConfigHelper.Setzsa{sv}as)r5   c             C   s2   t |t}t |}t |}tjd| j||| d S )Nz&%s.PropertiesChanged('%s', '%s', '%s'))r   r/   r   r0   r   )r   r1   Zchanged_propertiesZinvalidated_propertiesr   r   r    PropertiesChanged   s
    

z'FirewallDConfigHelper.PropertiesChanged)r.   c                s8   t jd| j tt| j| j| jj }t	| |t
jjS )Nz%s.Introspect())r   Zdebug2r   r   r   
Introspectr   r   Zget_busr   r   r   r   )r   r2   data)r   r   r    r<      s
    
z FirewallDConfigHelper.Introspectc             C   s   t jd| j | jj| jS )z get settings for helper
        z%s.getSettings())r   r0   r   r   Zget_helper_configr   )r   r2   r   r   r    getSettings   s    z!FirewallDConfigHelper.getSettingsc             C   sF   t |}tjd| j | jj| | jj| j|| _| j	| jj
 dS )z#update settings for helper
        z%s.update('...')N)r   r   r0   r   r   r9   r   Zset_helper_configr   Updatedr#   )r   settingsr2   r   r   r    update   s
    zFirewallDConfigHelper.updatec             C   s<   t jd| j | jj| | jj| j| _| j| jj	 dS )z1load default settings for builtin helper
        z%s.loadDefaults()N)
r   r0   r   r   r9   r   Zload_helper_defaultsr   r?   r#   )r   r2   r   r   r    loadDefaults   s    z"FirewallDConfigHelper.loadDefaultsc             C   s   t jd| j|f  d S )Nz%s.Updated('%s'))r   r0   r   )r   r#   r   r   r    r?      s    zFirewallDConfigHelper.Updatedc             C   s:   t jd| j | jj| | jj| j | jj| j dS )zremove helper
        z%s.removeHelper()N)	r   r0   r   r   r9   r   Zremove_helperr   ZremoveHelper)r   r2   r   r   r    remove   s    zFirewallDConfigHelper.removec             C   s   t jd| j|f  d S )Nz%s.Removed('%s'))r   r0   r   )r   r#   r   r   r    Removed   s    zFirewallDConfigHelper.Removedc             C   sF   t |t}tjd| j| | jj| | jj| j	|| _	| j
| dS )zrename helper
        z%s.rename('%s')N)r   r/   r   r0   r   r   r9   r   Zrename_helperr   Renamed)r   r#   r2   r   r   r    rename   s
    
zFirewallDConfigHelper.renamec             C   s   t jd| j|f  d S )Nz%s.Renamed('%s'))r   r0   r   )r   r#   r   r   r    rE      s    zFirewallDConfigHelper.Renamedc             C   s   t jd| j | j d S )Nz%s.getVersion()r   )r   r0   r   r>   )r   r2   r   r   r    
getVersion   s    z FirewallDConfigHelper.getVersionc             C   sH   t |t}tjd| j| | jj| t| j }||d< | j	| d S )Nz%s.setVersion('%s')r   )
r   r/   r   r0   r   r   r9   listr>   rA   )r   versionr2   r@   r   r   r    
setVersion  s    
z FirewallDConfigHelper.setVersionc             C   s   t jd| j | j d S )Nz%s.getShort()r   )r   r0   r   r>   )r   r2   r   r   r    getShort  s    zFirewallDConfigHelper.getShortc             C   sH   t |t}tjd| j| | jj| t| j }||d< | j	| d S )Nz%s.setShort('%s')r   )
r   r/   r   r0   r   r   r9   rH   r>   rA   )r   Zshortr2   r@   r   r   r    setShort  s    
zFirewallDConfigHelper.setShortc             C   s   t jd| j | j d S )Nz%s.getDescription()   )r   r0   r   r>   )r   r2   r   r   r    getDescription$  s    z$FirewallDConfigHelper.getDescriptionc             C   sH   t |t}tjd| j| | jj| t| j }||d< | j	| d S )Nz%s.setDescription('%s')rM   )
r   r/   r   r0   r   r   r9   rH   r>   rA   )r   descriptionr2   r@   r   r   r    setDescription+  s    

z$FirewallDConfigHelper.setDescriptionc             C   s.   t jd| j | jj| t| j }|d S )Nz%s.getFamily()   )r   r0   r   r   r9   rH   r>   )r   r2   r@   r   r   r    	getFamily9  s    zFirewallDConfigHelper.getFamilyc             C   sd   t |t}tjd| j| | jj| t| j }|d |krNt	t
jd| ||d< | j| d S )Nz%s.setFamily('%s')rQ   z'%s')r   r/   r   r0   r   r   r9   rH   r>   r   r   ALREADY_ENABLEDrA   )r   ipvr2   r@   r   r   r    	setFamilyB  s    
zFirewallDConfigHelper.setFamilybc             C   s.   t |t}tjd| j| | j }|d |kS )Nz%s.queryFamily('%s')rQ   )r   r/   r   r0   r   r>   )r   rT   r2   r@   r   r   r    queryFamilyO  s    
z!FirewallDConfigHelper.queryFamilyc             C   s.   t jd| j | jj| t| j }|d S )Nz%s.getModule()   )r   r0   r   r   r9   rH   r>   )r   r2   r@   r   r   r    	getModuleZ  s    zFirewallDConfigHelper.getModulec             C   sd   t |t}tjd| j| | jj| t| j }|d |krNt	t
jd| ||d< | j| d S )Nz%s.setModule('%s')rX   z'%s')r   r/   r   r0   r   r   r9   rH   r>   r   r   rS   rA   )r   moduler2   r@   r   r   r    	setModulec  s    
zFirewallDConfigHelper.setModulec             C   s.   t |t}tjd| j| | j }|d |kS )Nz%s.queryModule('%s')rX   )r   r/   r   r0   r   r>   )r   rZ   r2   r@   r   r   r    queryModulep  s    
z!FirewallDConfigHelper.queryModuleza(ss)c             C   s   t jd| j | j d S )Nz%s.getPorts()   )r   r0   r   r>   )r   r2   r   r   r    getPorts{  s    zFirewallDConfigHelper.getPortsc             C   s   g }x6t |tD ](}t|tr.|jt| q|j| qW |}tjd| jdjdd |D  | j	j
| t| j }||d< | j| d S )Nz%s.setPorts('[%s]'),c             s   s"   | ]}d |d |d f V  qdS )z('%s, '%s')r   r   Nr   ).0portr   r   r    	<genexpr>  s    z1FirewallDConfigHelper.setPorts.<locals>.<genexpr>r]   )r   rH   
isinstanceappendtupler   r0   r   joinr   r9   r>   rA   )r   Zportsr2   Z_portsra   r@   r   r   r    setPorts  s    

zFirewallDConfigHelper.setPortsc             C   s   t |t}t |t}tjd| j|| | jj| t| j }||f|d krbt	t
jd||f |d j||f | j| d S )Nz%s.addPort('%s', '%s')r]   z%s:%s)r   r/   r   r0   r   r   r9   rH   r>   r   r   rS   rd   rA   )r   ra   protocolr2   r@   r   r   r    addPort  s    

zFirewallDConfigHelper.addPortc             C   s   t |t}t |t}tjd| j|| | jj| t| j }||f|d krbt	t
jd||f |d j||f | j| d S )Nz%s.removePort('%s', '%s')r]   z%s:%s)r   r/   r   r0   r   r   r9   rH   r>   r   r   ZNOT_ENABLEDrC   rA   )r   ra   rh   r2   r@   r   r   r    
removePort  s    

z FirewallDConfigHelper.removePortc             C   s:   t |t}t |t}tjd| j|| ||f| j d kS )Nz%s.queryPort('%s', '%s')r]   )r   r/   r   r0   r   r>   )r   ra   rh   r2   r   r   r    	queryPort  s
    

zFirewallDConfigHelper.queryPort)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):__name__
__module____qualname____doc__Z
persistentr   r   ZPK_ACTION_CONFIGZdefault_polkit_auth_requiredr	   r   r
   r!   r"   r+   r   ZPROPERTIES_IFACEr3   r8   slipZpolkitZrequire_authr:   servicesignalr;   ZPK_ACTION_INFOZINTROSPECTABLE_IFACEr<   r   r   ZDBUS_SIGNATUREr>   rA   rB   r?   rC   rD   rF   rE   rG   rJ   rK   rL   rN   rP   rR   rU   rW   rY   r[   r\   r^   rg   ri   rj   rk   __classcell__r   r   )r   r    r   0   s   		

	



r   )Zgi.repositoryr   sysmodulesr   Zdbus.serviceZ	slip.dbusrp   Zslip.dbus.serviceZfirewallr   Zfirewall.dbus_utilsr   r   r   Zfirewall.core.io.helperr   Zfirewall.core.loggerr   Zfirewall.server.decoratorsr	   r
   r   r   Zfirewall.errorsr   rq   ZObjectr   r   r   r   r    <module>   s   
