
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
³Y„j¸ ã               @   sö  d dl mZmZ d dlZeejd< d dlZd dl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 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Zd dlZdadae	dd„ ƒZ G dd„ de!ƒZ"G dd„ de!ƒZ#G dd„ de!ƒZ$G dd„ de!ƒZ%G dd„ de!ƒZ&G dd„ de!ƒZ'G dd„ de!ƒZ(G dd„ de!ƒZ)G d d!„ d!e!ƒZ*G d"d#„ d#e!ƒZ+G d$d%„ d%e!ƒZ,G d&d'„ d'e!ƒZ-G d(d)„ d)e!ƒZ.G d*d+„ d+e!ƒZ/G d,d-„ d-e!ƒZ0G d.d/„ d/e!ƒZ1G d0d1„ d1e!ƒZ2G d2d3„ d3e!ƒZ3dS )4é    )ÚGLibÚGObjectNZgobject)Ú	decorator)Úconfig)ÚDEFAULT_ZONE_TARGETÚDEFAULT_POLICY_TARGETÚDEFAULT_POLICY_PRIORITY)Údbus_to_python)Úb2u)Ú	Rich_Rule)Únormalize_ipset_entryÚcheck_entry_overlaps_existingÚcheck_for_overlapping_entries)Úerrors)ÚFirewallErrorFc             O   s  d}�x|�sy
| ||ŽS  t jjk
rš } zb|jƒ }|jƒ }tsD‚ d|krVtdƒ n4d|krht|ƒ n"d}|rzt|ƒ nttt|ƒƒƒ W Y dd}~X nf tk
rÒ } zts²‚ nttt|ƒƒƒ W Y dd}~X n. t	k
� rþ   tsê‚ nttt
jƒ ƒƒ Y nX tsP qW dS )z#Decorator to handle exceptions
    FZNotAuthorizedExceptionzorg.freedesktop.DBus.ErrorTN)ÚdbusÚ
exceptionsÚDBusExceptionÚget_dbus_messageZget_dbus_nameÚexception_handlerr
   Ústrr   Ú	ExceptionÚ	tracebackÚ
format_excÚnot_authorized_loop)ÚfuncÚargsÚkwargsZ
authorizedÚeZdbus_messageZ	dbus_name© r   ú/usr/lib/python3.6/client.pyÚhandle_exceptions0   s6    




  r!   c               @   sì  e Zd Zed˜dd„ƒZedd„ ƒZedd„ ƒZedd	„ ƒZed
d„ ƒZedd„ ƒZ	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZed d!„ ƒZed"d#„ ƒZed$d%„ ƒZed&d'„ ƒZed(d)„ ƒZed*d+„ ƒZed,d-„ ƒZed.d/„ ƒZed0d1„ ƒZed2d3„ ƒZed4d5„ ƒZed6d7„ ƒZed8d9„ ƒZed:d;„ ƒZ ed<d=„ ƒZ!ed>d?„ ƒZ"ed@dA„ ƒZ#edBdC„ ƒZ$edDdE„ ƒZ%edFdG„ ƒZ&edHdI„ ƒZ'edJdK„ ƒZ(edLdM„ ƒZ)edNdO„ ƒZ*edPdQ„ ƒZ+edRdS„ ƒZ,edTdU„ ƒZ-e.j/j0j1edVdW„ ƒƒZ2e.j/j0j1edXdY„ ƒƒZ3e.j/j0j1edZd[„ ƒƒZ4ed\d]„ ƒZ5ed^d_„ ƒZ6e.j/j0j1ed`da„ ƒƒZ7e.j/j0j1edbdc„ ƒƒZ8e.j/j0j1eddde„ ƒƒZ9edfdg„ ƒZ:edhdi„ ƒZ;e.j/j0j1edjdk„ ƒƒZ<e.j/j0j1edldm„ ƒƒZ=e.j/j0j1edndo„ ƒƒZ>edpdq„ ƒZ?edrds„ ƒZ@edtdu„ ƒZAedvdw„ ƒZBedxdy„ ƒZCedzd{„ ƒZDed|d}„ ƒZEed~d„ ƒZFed€d�„ ƒZGed‚dƒ„ ƒZHed„d…„ ƒZIed†d‡„ ƒZJedˆd‰„ ƒZKedŠd‹„ ƒZLedŒd�„ ƒZMedŽd�„ ƒZNed�d‘„ ƒZOed’d“„ ƒZPed”d•„ ƒZQed–d—„ ƒZRdS )™ÚFirewallClientZoneSettingsNc             C   sÂ   ddddt g g g dg g g g g g ddg| _ddddddd	d
dddddddddg| _dddddddddddddddddg| _|r¾t|tƒrªx"t|ƒD ]\}}|| | j|< q�W t|tƒr¾| j|ƒ d S )NÚ FÚversionÚshortÚdescriptionÚUNUSEDÚtargetÚservicesÚportsÚicmp_blocksÚ
masqueradeÚforward_portsÚ
interfacesÚsourcesZ	rules_strÚ	protocolsÚsource_portsZicmp_block_inversionÚforwardÚsÚbz(ss)z(ssss))	r   ÚsettingsÚsettings_nameÚsettings_dbus_typeÚ
isinstanceÚlistÚ	enumerateÚdictÚsetSettingsDict)Úselfr5   ÚiÚvr   r   r    Ú__init__X   s(    

z#FirewallClientZoneSettings.__init__c             C   s   d| j | jf S )Nz%s(%r))Ú	__class__r5   )r=   r   r   r    Ú__repr__o   s    z#FirewallClientZoneSettings.__repr__c             C   s6   i }x,t | j| jƒD ]\}}|dkr&q|||< qW |S )Nr'   )Úzipr6   r5   )r=   r5   ÚkeyÚvaluer   r   r    ÚgetSettingsDicts   s    z*FirewallClientZoneSettings.getSettingsDictc             C   s(   x"|D ]}|| | j | jj|ƒ< qW d S )N)r5   r6   Úindex)r=   r5   rD   r   r   r    r<   {   s    
z*FirewallClientZoneSettings.setSettingsDictc             C   s|   i }xrt | j| j| jƒD ]\\}}}|dkr,qt|ƒtkrLtj||d�||< qt|ƒtkrltj	||d�||< q|||< qW |S )Nr'   )Ú	signature)
rC   r6   r5   r7   Útyper9   r   ÚArrayr;   Ú
Dictionary)r=   r5   rD   rE   Úsigr   r   r    ÚgetSettingsDbusDict   s    z.FirewallClientZoneSettings.getSettingsDbusDictc             C   s$   | j ƒ }|d= |d= |d= |d= |S )Nr$   r%   r&   r(   )rF   )r=   r5   r   r   r    ÚgetRuntimeSettingsDict�   s    z1FirewallClientZoneSettings.getRuntimeSettingsDictc             C   s$   | j ƒ }|d= |d= |d= |d= |S )Nr$   r%   r&   r(   )rM   )r=   r5   r   r   r    ÚgetRuntimeSettingsDbusDict–   s    z5FirewallClientZoneSettings.getRuntimeSettingsDbusDictc             C   s
   | j d S )Nr   )r5   )r=   r   r   r    Ú
getVersion    s    z%FirewallClientZoneSettings.getVersionc             C   s   || j d< d S )Nr   )r5   )r=   r$   r   r   r    Ú
setVersion£   s    z%FirewallClientZoneSettings.setVersionc             C   s
   | j d S )Né   )r5   )r=   r   r   r    ÚgetShort§   s    z#FirewallClientZoneSettings.getShortc             C   s   || j d< d S )NrR   )r5   )r=   r%   r   r   r    ÚsetShortª   s    z#FirewallClientZoneSettings.setShortc             C   s
   | j d S )Né   )r5   )r=   r   r   r    ÚgetDescription®   s    z)FirewallClientZoneSettings.getDescriptionc             C   s   || j d< d S )NrU   )r5   )r=   r&   r   r   r    ÚsetDescription±   s    z)FirewallClientZoneSettings.setDescriptionc             C   s   | j d tkr| j d S dS )Né   Údefault)r5   r   )r=   r   r   r    Ú	getTarget·   s    z$FirewallClientZoneSettings.getTargetc             C   s   |dkr|nt | jd< d S )NrY   rX   )r   r5   )r=   r(   r   r   r    Ú	setTargetº   s    z$FirewallClientZoneSettings.setTargetc             C   s
   | j d S )Né   )r5   )r=   r   r   r    ÚgetServices¾   s    z&FirewallClientZoneSettings.getServicesc             C   s   || j d< d S )Nr\   )r5   )r=   r)   r   r   r    ÚsetServicesÁ   s    z&FirewallClientZoneSettings.setServicesc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr\   )r5   Úappendr   r   ÚALREADY_ENABLED)r=   Úservicer   r   r    Ú
addServiceÄ   s    z%FirewallClientZoneSettings.addServicec             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr\   )r5   Úremover   r   ÚNOT_ENABLED)r=   ra   r   r   r    ÚremoveServiceÊ   s    z(FirewallClientZoneSettings.removeServicec             C   s   || j d kS )Nr\   )r5   )r=   ra   r   r   r    ÚqueryServiceÐ   s    z'FirewallClientZoneSettings.queryServicec             C   s
   | j d S )Né   )r5   )r=   r   r   r    ÚgetPortsÔ   s    z#FirewallClientZoneSettings.getPortsc             C   s   || j d< d S )Nrg   )r5   )r=   r*   r   r   r    ÚsetPorts×   s    z#FirewallClientZoneSettings.setPortsc             C   s@   ||f| j d kr(| j d j||fƒ nttjd||f ƒ‚d S )Nrg   z'%s:%s')r5   r_   r   r   r`   )r=   ÚportÚprotocolr   r   r    ÚaddPortÚ   s    z"FirewallClientZoneSettings.addPortc             C   s@   ||f| j d kr(| j d j||fƒ nttjd||f ƒ‚d S )Nrg   z'%s:%s')r5   rc   r   r   rd   )r=   rj   rk   r   r   r    Ú
removePortá   s    z%FirewallClientZoneSettings.removePortc             C   s   ||f| j d kS )Nrg   )r5   )r=   rj   rk   r   r   r    Ú	queryPortè   s    z$FirewallClientZoneSettings.queryPortc             C   s
   | j d S )Né   )r5   )r=   r   r   r    ÚgetProtocolsì   s    z'FirewallClientZoneSettings.getProtocolsc             C   s   || j d< d S )Nro   )r5   )r=   r0   r   r   r    ÚsetProtocolsï   s    z'FirewallClientZoneSettings.setProtocolsc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nro   )r5   r_   r   r   r`   )r=   rk   r   r   r    ÚaddProtocolò   s    z&FirewallClientZoneSettings.addProtocolc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nro   )r5   rc   r   r   rd   )r=   rk   r   r   r    ÚremoveProtocolø   s    z)FirewallClientZoneSettings.removeProtocolc             C   s   || j d kS )Nro   )r5   )r=   rk   r   r   r    ÚqueryProtocolþ   s    z(FirewallClientZoneSettings.queryProtocolc             C   s
   | j d S )Né   )r5   )r=   r   r   r    ÚgetSourcePorts  s    z)FirewallClientZoneSettings.getSourcePortsc             C   s   || j d< d S )Nru   )r5   )r=   r*   r   r   r    ÚsetSourcePorts  s    z)FirewallClientZoneSettings.setSourcePortsc             C   s@   ||f| j d kr(| j d j||fƒ nttjd||f ƒ‚d S )Nru   z'%s:%s')r5   r_   r   r   r`   )r=   rj   rk   r   r   r    ÚaddSourcePort  s    z(FirewallClientZoneSettings.addSourcePortc             C   s@   ||f| j d kr(| j d j||fƒ nttjd||f ƒ‚d S )Nru   z'%s:%s')r5   rc   r   r   rd   )r=   rj   rk   r   r   r    ÚremoveSourcePort  s    z+FirewallClientZoneSettings.removeSourcePortc             C   s   ||f| j d kS )Nru   )r5   )r=   rj   rk   r   r   r    ÚquerySourcePort  s    z*FirewallClientZoneSettings.querySourcePortc             C   s
   | j d S )Né   )r5   )r=   r   r   r    ÚgetIcmpBlocks  s    z(FirewallClientZoneSettings.getIcmpBlocksc             C   s   || j d< d S )Nr{   )r5   )r=   Ú
icmpblocksr   r   r    ÚsetIcmpBlocks  s    z(FirewallClientZoneSettings.setIcmpBlocksc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr{   )r5   r_   r   r   r`   )r=   Úicmptyper   r   r    ÚaddIcmpBlock   s    z'FirewallClientZoneSettings.addIcmpBlockc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr{   )r5   rc   r   r   rd   )r=   r   r   r   r    ÚremoveIcmpBlock&  s    z*FirewallClientZoneSettings.removeIcmpBlockc             C   s   || j d kS )Nr{   )r5   )r=   r   r   r   r    ÚqueryIcmpBlock,  s    z)FirewallClientZoneSettings.queryIcmpBlockc             C   s
   | j d S )Né   )r5   )r=   r   r   r    ÚgetIcmpBlockInversion0  s    z0FirewallClientZoneSettings.getIcmpBlockInversionc             C   s   || j d< d S )Nrƒ   )r5   )r=   Úflagr   r   r    ÚsetIcmpBlockInversion3  s    z0FirewallClientZoneSettings.setIcmpBlockInversionc             C   s&   | j d sd| j d< nttjdƒ d S )Nrƒ   Tzicmp-block-inversion)r5   r   r   r`   )r=   r   r   r    ÚaddIcmpBlockInversion6  s    
z0FirewallClientZoneSettings.addIcmpBlockInversionc             C   s&   | j d rd| j d< nttjdƒ d S )Nrƒ   Fzicmp-block-inversion)r5   r   r   rd   )r=   r   r   r    ÚremoveIcmpBlockInversion=  s    
z3FirewallClientZoneSettings.removeIcmpBlockInversionc             C   s
   | j d S )Nrƒ   )r5   )r=   r   r   r    ÚqueryIcmpBlockInversionD  s    z2FirewallClientZoneSettings.queryIcmpBlockInversionc             C   s
   | j d S )Né   )r5   )r=   r   r   r    Ú
getForwardI  s    z%FirewallClientZoneSettings.getForwardc             C   s   || j d< d S )NrŠ   )r5   )r=   r2   r   r   r    Ú
setForwardL  s    z%FirewallClientZoneSettings.setForwardc             C   s&   | j d sd| j d< nttjdƒ d S )NrŠ   Tr2   )r5   r   r   r`   )r=   r   r   r    Ú
addForwardO  s    
z%FirewallClientZoneSettings.addForwardc             C   s&   | j d rd| j d< nttjdƒ d S )NrŠ   Fr2   )r5   r   r   rd   )r=   r   r   r    ÚremoveForwardV  s    
z(FirewallClientZoneSettings.removeForwardc             C   s
   | j d S )NrŠ   )r5   )r=   r   r   r    ÚqueryForward]  s    z'FirewallClientZoneSettings.queryForwardc             C   s
   | j d S )Né   )r5   )r=   r   r   r    ÚgetMasqueradeb  s    z(FirewallClientZoneSettings.getMasqueradec             C   s   || j d< d S )Nr�   )r5   )r=   r,   r   r   r    ÚsetMasqueradee  s    z(FirewallClientZoneSettings.setMasqueradec             C   s&   | j d sd| j d< nttjdƒ d S )Nr�   Tr,   )r5   r   r   r`   )r=   r   r   r    ÚaddMasqueradeh  s    
z(FirewallClientZoneSettings.addMasqueradec             C   s&   | j d rd| j d< nttjdƒ d S )Nr�   Fr,   )r5   r   r   rd   )r=   r   r   r    ÚremoveMasqueradeo  s    
z+FirewallClientZoneSettings.removeMasqueradec             C   s
   | j d S )Nr�   )r5   )r=   r   r   r    ÚqueryMasqueradev  s    z*FirewallClientZoneSettings.queryMasqueradec             C   s
   | j d S )Né	   )r5   )r=   r   r   r    ÚgetForwardPorts{  s    z*FirewallClientZoneSettings.getForwardPortsc             C   s   || j d< d S )Nr–   )r5   )r=   r*   r   r   r    ÚsetForwardPorts~  s    z*FirewallClientZoneSettings.setForwardPortsc             C   sd   |d krd}|d krd}||||f| j d krH| j d j||||fƒ nttjd||||f ƒ‚d S )Nr#   r–   z'%s:%s:%s:%s')r5   r_   r   r   r`   )r=   rj   rk   Úto_portÚto_addrr   r   r    ÚaddForwardPort�  s    z)FirewallClientZoneSettings.addForwardPortc             C   sd   |d krd}|d krd}||||f| j d krH| j d j||||fƒ nttjd||||f ƒ‚d S )Nr#   r–   z'%s:%s:%s:%s')r5   rc   r   r   rd   )r=   rj   rk   r™   rš   r   r   r    ÚremoveForwardPortŒ  s    z,FirewallClientZoneSettings.removeForwardPortc             C   s.   |d krd}|d krd}||||f| j d kS )Nr#   r–   )r5   )r=   rj   rk   r™   rš   r   r   r    ÚqueryForwardPort—  s
    z+FirewallClientZoneSettings.queryForwardPortc             C   s
   | j d S )Né
   )r5   )r=   r   r   r    ÚgetInterfacesŸ  s    z(FirewallClientZoneSettings.getInterfacesc             C   s   || j d< d S )Nrž   )r5   )r=   r.   r   r   r    ÚsetInterfaces¢  s    z(FirewallClientZoneSettings.setInterfacesc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nrž   )r5   r_   r   r   r`   )r=   Ú	interfacer   r   r    ÚaddInterface¥  s    z'FirewallClientZoneSettings.addInterfacec             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nrž   )r5   rc   r   r   rd   )r=   r¡   r   r   r    ÚremoveInterface«  s    z*FirewallClientZoneSettings.removeInterfacec             C   s   || j d kS )Nrž   )r5   )r=   r¡   r   r   r    ÚqueryInterface±  s    z)FirewallClientZoneSettings.queryInterfacec             C   s
   | j d S )Né   )r5   )r=   r   r   r    Ú
getSourcesµ  s    z%FirewallClientZoneSettings.getSourcesc             C   s   || j d< d S )Nr¥   )r5   )r=   r/   r   r   r    Ú
setSources¸  s    z%FirewallClientZoneSettings.setSourcesc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr¥   )r5   r_   r   r   r`   )r=   Úsourcer   r   r    Ú	addSource»  s    z$FirewallClientZoneSettings.addSourcec             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr¥   )r5   rc   r   r   rd   )r=   r¨   r   r   r    ÚremoveSourceÁ  s    z'FirewallClientZoneSettings.removeSourcec             C   s   || j d kS )Nr¥   )r5   )r=   r¨   r   r   r    ÚquerySourceÇ  s    z&FirewallClientZoneSettings.querySourcec             C   s
   | j d S )Né   )r5   )r=   r   r   r    ÚgetRichRulesË  s    z'FirewallClientZoneSettings.getRichRulesc             C   s   dd„ |D ƒ}|| j d< d S )Nc             S   s   g | ]}t t|d �ƒ‘qS ))Úrule_str)r   r   )Ú.0Úrr   r   r    ú
<listcomp>Ð  s    z;FirewallClientZoneSettings.setRichRules.<locals>.<listcomp>r¬   )r5   )r=   Úrulesr   r   r    ÚsetRichRulesÎ  s    z'FirewallClientZoneSettings.setRichRulesc             C   s>   t t|d�ƒ}|| jd kr.| jd j|ƒ nttj|ƒ‚d S )N)r®   r¬   )r   r   r5   r_   r   r   r`   )r=   Úruler   r   r    ÚaddRichRuleÒ  s    z&FirewallClientZoneSettings.addRichRulec             C   s>   t t|d�ƒ}|| jd kr.| jd j|ƒ nttj|ƒ‚d S )N)r®   r¬   )r   r   r5   rc   r   r   rd   )r=   r´   r   r   r    ÚremoveRichRuleÙ  s    z)FirewallClientZoneSettings.removeRichRulec             C   s   t t|d�ƒ}|| jd kS )N)r®   r¬   )r   r   r5   )r=   r´   r   r   r    ÚqueryRichRuleà  s    z(FirewallClientZoneSettings.queryRichRule)N)SÚ__name__Ú
__module__Ú__qualname__r!   r@   rB   rF   r<   rM   rN   rO   rP   rQ   rS   rT   rV   rW   rZ   r[   r]   r^   rb   re   rf   rh   ri   rl   rm   rn   rp   rq   rr   rs   rt   rv   rw   rx   ry   rz   r|   r~   r€   r�   r‚   r„   r†   Úslipr   ÚpolkitÚenable_proxyr‡   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ª   r«   r­   r³   rµ   r¶   r·   r   r   r   r    r"   W   sª   	
r"   c               @   sœ  e Zd Zdd„ Zejjjedd„ ƒƒZ	ejjjedd„ ƒƒZ
ejjjedd„ ƒƒZejjjed	d
„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd „ ƒƒZejjjed!d"„ ƒƒZejjjed#d$„ ƒƒZejjjed%d&„ ƒƒZejjjed'd(„ ƒƒZejjjed)d*„ ƒƒZejjjed+d,„ ƒƒZejjjed-d.„ ƒƒZejjjed/d0„ ƒƒZejjjed1d2„ ƒƒZ ejjjed3d4„ ƒƒZ!ejjjed5d6„ ƒƒZ"ejjjed7d8„ ƒƒZ#ejjjed9d:„ ƒƒZ$ejjjed;d<„ ƒƒZ%ejjjed=d>„ ƒƒZ&ejjjed?d@„ ƒƒZ'ejjjedAdB„ ƒƒZ(ejjjedCdD„ ƒƒZ)ejjjedEdF„ ƒƒZ*ejjjedGdH„ ƒƒZ+ejjjedIdJ„ ƒƒZ,ejjjedKdL„ ƒƒZ-ejjjedMdN„ ƒƒZ.ejjjedOdP„ ƒƒZ/ejjjedQdR„ ƒƒZ0ejjjedSdT„ ƒƒZ1ejjjedUdV„ ƒƒZ2ejjjedWdX„ ƒƒZ3ejjjedYdZ„ ƒƒZ4ejjjed[d\„ ƒƒZ5ejjjed]d^„ ƒƒZ6ejjjed_d`„ ƒƒZ7ejjjedadb„ ƒƒZ8ejjjedcdd„ ƒƒZ9ejjjededf„ ƒƒZ:ejjjedgdh„ ƒƒZ;ejjjedidj„ ƒƒZ<ejjjedkdl„ ƒƒZ=ejjjedmdn„ ƒƒZ>ejjjedodp„ ƒƒZ?ejjjedqdr„ ƒƒZ@ejjjedsdt„ ƒƒZAejjjedudv„ ƒƒZBejjjedwdx„ ƒƒZCejjjedydz„ ƒƒZDejjjed{d|„ ƒƒZEejjjed}d~„ ƒƒZFejjjedd€„ ƒƒZGejjjed�d‚„ ƒƒZHejjjedƒd„„ ƒƒZIejjjed…d†„ ƒƒZJejjjed‡dˆ„ ƒƒZKejjjed‰dŠ„ ƒƒZLejjjed‹dŒ„ ƒƒZMejjjed�dŽ„ ƒƒZNejjjed�d�„ ƒƒZOejjjed‘d’„ ƒƒZPejjjed“d”„ ƒƒZQejjjed•d–„ ƒƒZRejjjed—d˜„ ƒƒZSejjjed™dš„ ƒƒZTd›S )œÚFirewallClientConfigZonec             C   sL   || _ || _| j jtjj|ƒ| _tj| jtjjd�| _	tj| jdd�| _
d S )N)Údbus_interfacezorg.freedesktop.DBus.Properties)ÚbusÚpathÚ
get_objectr   r   ÚDBUS_INTERFACEÚdbus_objÚ	InterfaceÚDBUS_INTERFACE_CONFIG_ZONEÚfw_zoneÚfw_properties)r=   rÀ   rÁ   r   r   r    r@   é  s    z!FirewallClientConfigZone.__init__c             C   s   t | jjtjj|ƒƒS )N)r	   rÈ   ÚGetr   r   rÆ   )r=   Úpropr   r   r    Úget_propertyõ  s    z%FirewallClientConfigZone.get_propertyc             C   s   t | jjtjjƒƒS )N)r	   rÈ   ÚGetAllr   r   rÆ   )r=   r   r   r    Úget_propertiesû  s    z'FirewallClientConfigZone.get_propertiesc             C   s   | j jtjj||ƒ d S )N)rÈ   ÚSetr   r   rÆ   )r=   rÊ   rE   r   r   r    Úset_property  s    z%FirewallClientConfigZone.set_propertyc             C   s   t t| jjƒ ƒƒS )N)r"   r	   rÇ   ÚgetSettings2)r=   r   r   r    ÚgetSettings  s    z$FirewallClientConfigZone.getSettingsc             C   s   | j j|jƒ ƒ d S )N)rÇ   Úupdate2rM   )r=   r5   r   r   r    Úupdate  s    zFirewallClientConfigZone.updatec             C   s   | j jƒ  d S )N)rÇ   ÚloadDefaults)r=   r   r   r    rÔ     s    z%FirewallClientConfigZone.loadDefaultsc             C   s   | j jƒ  d S )N)rÇ   rc   )r=   r   r   r    rc     s    zFirewallClientConfigZone.removec             C   s   | j j|ƒ d S )N)rÇ   Úrename)r=   Únamer   r   r    rÕ     s    zFirewallClientConfigZone.renamec             C   s
   | j jƒ S )N)rÇ   rP   )r=   r   r   r    rP   "  s    z#FirewallClientConfigZone.getVersionc             C   s   | j j|ƒ d S )N)rÇ   rQ   )r=   r$   r   r   r    rQ   '  s    z#FirewallClientConfigZone.setVersionc             C   s
   | j jƒ S )N)rÇ   rS   )r=   r   r   r    rS   .  s    z!FirewallClientConfigZone.getShortc             C   s   | j j|ƒ d S )N)rÇ   rT   )r=   r%   r   r   r    rT   3  s    z!FirewallClientConfigZone.setShortc             C   s
   | j jƒ S )N)rÇ   rV   )r=   r   r   r    rV   :  s    z'FirewallClientConfigZone.getDescriptionc             C   s   | j j|ƒ d S )N)rÇ   rW   )r=   r&   r   r   r    rW   ?  s    z'FirewallClientConfigZone.setDescriptionc             C   s
   | j jƒ S )N)rÇ   rZ   )r=   r   r   r    rZ   F  s    z"FirewallClientConfigZone.getTargetc             C   s   | j j|ƒ d S )N)rÇ   r[   )r=   r(   r   r   r    r[   K  s    z"FirewallClientConfigZone.setTargetc             C   s
   | j jƒ S )N)rÇ   r]   )r=   r   r   r    r]   R  s    z$FirewallClientConfigZone.getServicesc             C   s   | j j|ƒ d S )N)rÇ   r^   )r=   r)   r   r   r    r^   W  s    z$FirewallClientConfigZone.setServicesc             C   s   | j j|ƒ d S )N)rÇ   rb   )r=   ra   r   r   r    rb   \  s    z#FirewallClientConfigZone.addServicec             C   s   | j j|ƒ d S )N)rÇ   re   )r=   ra   r   r   r    re   a  s    z&FirewallClientConfigZone.removeServicec             C   s   | j j|ƒS )N)rÇ   rf   )r=   ra   r   r   r    rf   f  s    z%FirewallClientConfigZone.queryServicec             C   s
   | j jƒ S )N)rÇ   rh   )r=   r   r   r    rh   m  s    z!FirewallClientConfigZone.getPortsc             C   s   | j j|ƒ d S )N)rÇ   ri   )r=   r*   r   r   r    ri   r  s    z!FirewallClientConfigZone.setPortsc             C   s   | j j||ƒ d S )N)rÇ   rl   )r=   rj   rk   r   r   r    rl   w  s    z FirewallClientConfigZone.addPortc             C   s   | j j||ƒ d S )N)rÇ   rm   )r=   rj   rk   r   r   r    rm   |  s    z#FirewallClientConfigZone.removePortc             C   s   | j j||ƒS )N)rÇ   rn   )r=   rj   rk   r   r   r    rn   �  s    z"FirewallClientConfigZone.queryPortc             C   s
   | j jƒ S )N)rÇ   rp   )r=   r   r   r    rp   ˆ  s    z%FirewallClientConfigZone.getProtocolsc             C   s   | j j|ƒ d S )N)rÇ   rq   )r=   r0   r   r   r    rq   �  s    z%FirewallClientConfigZone.setProtocolsc             C   s   | j j|ƒ d S )N)rÇ   rr   )r=   rk   r   r   r    rr   ’  s    z$FirewallClientConfigZone.addProtocolc             C   s   | j j|ƒ d S )N)rÇ   rs   )r=   rk   r   r   r    rs   —  s    z'FirewallClientConfigZone.removeProtocolc             C   s   | j j|ƒS )N)rÇ   rt   )r=   rk   r   r   r    rt   œ  s    z&FirewallClientConfigZone.queryProtocolc             C   s
   | j jƒ S )N)rÇ   rv   )r=   r   r   r    rv   £  s    z'FirewallClientConfigZone.getSourcePortsc             C   s   | j j|ƒ d S )N)rÇ   rw   )r=   r*   r   r   r    rw   ¨  s    z'FirewallClientConfigZone.setSourcePortsc             C   s   | j j||ƒ d S )N)rÇ   rx   )r=   rj   rk   r   r   r    rx   ­  s    z&FirewallClientConfigZone.addSourcePortc             C   s   | j j||ƒ d S )N)rÇ   ry   )r=   rj   rk   r   r   r    ry   ²  s    z)FirewallClientConfigZone.removeSourcePortc             C   s   | j j||ƒS )N)rÇ   rz   )r=   rj   rk   r   r   r    rz   ·  s    z(FirewallClientConfigZone.querySourcePortc             C   s
   | j jƒ S )N)rÇ   r|   )r=   r   r   r    r|   ¾  s    z&FirewallClientConfigZone.getIcmpBlocksc             C   s   | j j|ƒ d S )N)rÇ   r~   )r=   Z	icmptypesr   r   r    r~   Ã  s    z&FirewallClientConfigZone.setIcmpBlocksc             C   s   | j j|ƒ d S )N)rÇ   r€   )r=   r   r   r   r    r€   È  s    z%FirewallClientConfigZone.addIcmpBlockc             C   s   | j j|ƒ d S )N)rÇ   r�   )r=   r   r   r   r    r�   Í  s    z(FirewallClientConfigZone.removeIcmpBlockc             C   s   | j j|ƒS )N)rÇ   r‚   )r=   r   r   r   r    r‚   Ò  s    z'FirewallClientConfigZone.queryIcmpBlockc             C   s
   | j jƒ S )N)rÇ   r„   )r=   r   r   r    r„   Ù  s    z.FirewallClientConfigZone.getIcmpBlockInversionc             C   s   | j j|ƒ d S )N)rÇ   r†   )r=   Z	inversionr   r   r    r†   Þ  s    z.FirewallClientConfigZone.setIcmpBlockInversionc             C   s   | j jƒ  d S )N)rÇ   r‡   )r=   r   r   r    r‡   ã  s    z.FirewallClientConfigZone.addIcmpBlockInversionc             C   s   | j jƒ  d S )N)rÇ   rˆ   )r=   r   r   r    rˆ   è  s    z1FirewallClientConfigZone.removeIcmpBlockInversionc             C   s
   | j jƒ S )N)rÇ   r‰   )r=   r   r   r    r‰   í  s    z0FirewallClientConfigZone.queryIcmpBlockInversionc             C   s   | j jƒ d S )Nr2   )rÇ   rÐ   )r=   r   r   r    r‹   ô  s    z#FirewallClientConfigZone.getForwardc             C   s   | j jd|iƒ d S )Nr2   )rÇ   rÒ   )r=   r2   r   r   r    rŒ   ù  s    z#FirewallClientConfigZone.setForwardc             C   s   | j jddiƒ d S )Nr2   T)rÇ   rÒ   )r=   r   r   r    r�   þ  s    z#FirewallClientConfigZone.addForwardc             C   s   | j jddiƒ d S )Nr2   F)rÇ   rÒ   )r=   r   r   r    rŽ     s    z&FirewallClientConfigZone.removeForwardc             C   s   | j jƒ d S )Nr2   )rÇ   rÐ   )r=   r   r   r    r�     s    z%FirewallClientConfigZone.queryForwardc             C   s
   | j jƒ S )N)rÇ   r‘   )r=   r   r   r    r‘     s    z&FirewallClientConfigZone.getMasqueradec             C   s   | j j|ƒ d S )N)rÇ   r’   )r=   r,   r   r   r    r’     s    z&FirewallClientConfigZone.setMasqueradec             C   s   | j jƒ  d S )N)rÇ   r“   )r=   r   r   r    r“     s    z&FirewallClientConfigZone.addMasqueradec             C   s   | j jƒ  d S )N)rÇ   r”   )r=   r   r   r    r”     s    z)FirewallClientConfigZone.removeMasqueradec             C   s
   | j jƒ S )N)rÇ   r•   )r=   r   r   r    r•   #  s    z(FirewallClientConfigZone.queryMasqueradec             C   s
   | j jƒ S )N)rÇ   r—   )r=   r   r   r    r—   *  s    z(FirewallClientConfigZone.getForwardPortsc             C   s   | j j|ƒ d S )N)rÇ   r˜   )r=   r*   r   r   r    r˜   /  s    z(FirewallClientConfigZone.setForwardPortsc             C   s.   |d krd}|d krd}| j j||||ƒ d S )Nr#   )rÇ   r›   )r=   rj   rk   ÚtoportÚtoaddrr   r   r    r›   4  s
    z'FirewallClientConfigZone.addForwardPortc             C   s.   |d krd}|d krd}| j j||||ƒ d S )Nr#   )rÇ   rœ   )r=   rj   rk   r×   rØ   r   r   r    rœ   =  s
    z*FirewallClientConfigZone.removeForwardPortc             C   s*   |d krd}|d krd}| j j||||ƒS )Nr#   )rÇ   r�   )r=   rj   rk   r×   rØ   r   r   r    r�   F  s
    z)FirewallClientConfigZone.queryForwardPortc             C   s
   | j jƒ S )N)rÇ   rŸ   )r=   r   r   r    rŸ   Q  s    z&FirewallClientConfigZone.getInterfacesc             C   s   | j j|ƒ d S )N)rÇ   r    )r=   r.   r   r   r    r    V  s    z&FirewallClientConfigZone.setInterfacesc             C   s   | j j|ƒ d S )N)rÇ   r¢   )r=   r¡   r   r   r    r¢   [  s    z%FirewallClientConfigZone.addInterfacec             C   s   | j j|ƒ d S )N)rÇ   r£   )r=   r¡   r   r   r    r£   `  s    z(FirewallClientConfigZone.removeInterfacec             C   s   | j j|ƒS )N)rÇ   r¤   )r=   r¡   r   r   r    r¤   e  s    z'FirewallClientConfigZone.queryInterfacec             C   s
   | j jƒ S )N)rÇ   r¦   )r=   r   r   r    r¦   l  s    z#FirewallClientConfigZone.getSourcesc             C   s   | j j|ƒ d S )N)rÇ   r§   )r=   r/   r   r   r    r§   q  s    z#FirewallClientConfigZone.setSourcesc             C   s   | j j|ƒ d S )N)rÇ   r©   )r=   r¨   r   r   r    r©   v  s    z"FirewallClientConfigZone.addSourcec             C   s   | j j|ƒ d S )N)rÇ   rª   )r=   r¨   r   r   r    rª   {  s    z%FirewallClientConfigZone.removeSourcec             C   s   | j j|ƒS )N)rÇ   r«   )r=   r¨   r   r   r    r«   €  s    z$FirewallClientConfigZone.querySourcec             C   s
   | j jƒ S )N)rÇ   r­   )r=   r   r   r    r­   ‡  s    z%FirewallClientConfigZone.getRichRulesc             C   s   | j j|ƒ d S )N)rÇ   r³   )r=   r²   r   r   r    r³   Œ  s    z%FirewallClientConfigZone.setRichRulesc             C   s   | j j|ƒ d S )N)rÇ   rµ   )r=   r´   r   r   r    rµ   ‘  s    z$FirewallClientConfigZone.addRichRulec             C   s   | j j|ƒ d S )N)rÇ   r¶   )r=   r´   r   r   r    r¶   –  s    z'FirewallClientConfigZone.removeRichRulec             C   s   | j j|ƒS )N)rÇ   r·   )r=   r´   r   r   r    r·   ›  s    z&FirewallClientConfigZone.queryRichRuleN)Ur¸   r¹   rº   r@   r»   r   r¼   r½   r!   rË   rÍ   rÏ   rÑ   rÓ   rÔ   rc   rÕ   rP   rQ   rS   rT   rV   rW   rZ   r[   r]   r^   rb   re   rf   rh   ri   rl   rm   rn   rp   rq   rr   rs   rt   rv   rw   rx   ry   rz   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Ÿ   r    r¢   r£   r¤   r¦   r§   r©   rª   r«   r­   r³   rµ   r¶   r·   r   r   r   r    r¾   è  s2  
r¾   c               @   s@  e Zd Zed†dd„ƒZedd„ ƒZedd„ ƒZedd	„ ƒZed
d„ ƒZdd„ Z	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZed d!„ ƒZed"d#„ ƒZed$d%„ ƒZed&d'„ ƒZed(d)„ ƒZed*d+„ ƒZed,d-„ ƒZed.d/„ ƒZed0d1„ ƒZed2d3„ ƒZed4d5„ ƒZed6d7„ ƒZed8d9„ ƒZed:d;„ ƒZ ed<d=„ ƒZ!ed>d?„ ƒZ"ed@dA„ ƒZ#edBdC„ ƒZ$edDdE„ ƒZ%edFdG„ ƒZ&edHdI„ ƒZ'edJdK„ ƒZ(edLdM„ ƒZ)edNdO„ ƒZ*edPdQ„ ƒZ+edRdS„ ƒZ,e-j.j/j0edTdU„ ƒƒZ1e-j.j/j0edVdW„ ƒƒZ2e-j.j/j0edXdY„ ƒƒZ3edZd[„ ƒZ4ed\d]„ ƒZ5ed^d_„ ƒZ6ed`da„ ƒZ7edbdc„ ƒZ8eddde„ ƒZ9edfdg„ ƒZ:edhdi„ ƒZ;edjdk„ ƒZ<edldm„ ƒZ=edndo„ ƒZ>edpdq„ ƒZ?edrds„ ƒZ@edtdu„ ƒZAedvdw„ ƒZBedxdy„ ƒZCedzd{„ ƒZDed|d}„ ƒZEed~d„ ƒZFed€d�„ ƒZGed‚dƒ„ ƒZHed„d…„ ƒZIdS )‡ÚFirewallClientPolicySettingsNc             C   s\   dg g g g dg t g g g dg tddœ| _dddddddddddddddg| _|rX| j|ƒ d S )	Nr#   F)r&   Úegress_zonesr-   r+   Úingress_zonesr,   r*   Úpriorityr0   Ú
rich_rulesr)   r%   r1   r(   r$   r3   z(ssss)r4   z(ss)r>   )r   r   r5   r7   r<   )r=   r5   r   r   r    r@   ¡  s,    

z%FirewallClientPolicySettings.__init__c             C   s   d| j | jf S )Nz%s(%r))rA   r5   )r=   r   r   r    rB   »  s    z%FirewallClientPolicySettings.__repr__c             C   s   | j S )N)r5   )r=   r   r   r    rF   ¿  s    z,FirewallClientPolicySettings.getSettingsDictc             C   s    x|D ]}|| | j |< qW d S )N)r5   )r=   r5   rD   r   r   r    r<   Â  s    
z,FirewallClientPolicySettings.setSettingsDictc             C   sv   i }xlt | j| jƒD ]Z\}}| j| }t|ƒtkrFtj||d�||< qt|ƒtkrftj||d�||< q|||< qW |S )N)rH   )	rC   r5   r7   rI   r9   r   rJ   r;   rK   )r=   r5   rD   rL   rE   r   r   r    rM   Æ  s    
z0FirewallClientPolicySettings.getSettingsDbusDictc             C   s    | j ƒ }xdD ]
}||= qW |S )Nr$   r%   r&   r(   )r$   r%   r&   r(   )rM   )r=   r5   rD   r   r   r    rO   Ò  s    

z7FirewallClientPolicySettings.getRuntimeSettingsDbusDictc             C   s
   | j d S )Nr$   )r5   )r=   r   r   r    rP   Ø  s    z'FirewallClientPolicySettings.getVersionc             C   s   || j d< d S )Nr$   )r5   )r=   r$   r   r   r    rQ   Û  s    z'FirewallClientPolicySettings.setVersionc             C   s
   | j d S )Nr%   )r5   )r=   r   r   r    rS   ß  s    z%FirewallClientPolicySettings.getShortc             C   s   || j d< d S )Nr%   )r5   )r=   r%   r   r   r    rT   â  s    z%FirewallClientPolicySettings.setShortc             C   s
   | j d S )Nr&   )r5   )r=   r   r   r    rV   æ  s    z+FirewallClientPolicySettings.getDescriptionc             C   s   || j d< d S )Nr&   )r5   )r=   r&   r   r   r    rW   é  s    z+FirewallClientPolicySettings.setDescriptionc             C   s
   | j d S )Nr(   )r5   )r=   r   r   r    rZ   í  s    z&FirewallClientPolicySettings.getTargetc             C   s   || j d< d S )Nr(   )r5   )r=   r(   r   r   r    r[   ð  s    z&FirewallClientPolicySettings.setTargetc             C   s
   | j d S )Nr)   )r5   )r=   r   r   r    r]   ô  s    z(FirewallClientPolicySettings.getServicesc             C   s   || j d< d S )Nr)   )r5   )r=   r)   r   r   r    r^   ÷  s    z(FirewallClientPolicySettings.setServicesc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr)   )r5   r_   r   r   r`   )r=   ra   r   r   r    rb   ú  s    z'FirewallClientPolicySettings.addServicec             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr)   )r5   rc   r   r   rd   )r=   ra   r   r   r    re      s    z*FirewallClientPolicySettings.removeServicec             C   s   || j d kS )Nr)   )r5   )r=   ra   r   r   r    rf     s    z)FirewallClientPolicySettings.queryServicec             C   s
   | j d S )Nr*   )r5   )r=   r   r   r    rh   
  s    z%FirewallClientPolicySettings.getPortsc             C   s   || j d< d S )Nr*   )r5   )r=   r*   r   r   r    ri     s    z%FirewallClientPolicySettings.setPortsc             C   s@   ||f| j d kr(| j d j||fƒ nttjd||f ƒ‚d S )Nr*   z'%s:%s')r5   r_   r   r   r`   )r=   rj   rk   r   r   r    rl     s    z$FirewallClientPolicySettings.addPortc             C   s@   ||f| j d kr(| j d j||fƒ nttjd||f ƒ‚d S )Nr*   z'%s:%s')r5   rc   r   r   rd   )r=   rj   rk   r   r   r    rm     s    z'FirewallClientPolicySettings.removePortc             C   s   ||f| j d kS )Nr*   )r5   )r=   rj   rk   r   r   r    rn     s    z&FirewallClientPolicySettings.queryPortc             C   s
   | j d S )Nr0   )r5   )r=   r   r   r    rp   "  s    z)FirewallClientPolicySettings.getProtocolsc             C   s   || j d< d S )Nr0   )r5   )r=   r0   r   r   r    rq   %  s    z)FirewallClientPolicySettings.setProtocolsc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr0   )r5   r_   r   r   r`   )r=   rk   r   r   r    rr   (  s    z(FirewallClientPolicySettings.addProtocolc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr0   )r5   rc   r   r   rd   )r=   rk   r   r   r    rs   .  s    z+FirewallClientPolicySettings.removeProtocolc             C   s   || j d kS )Nr0   )r5   )r=   rk   r   r   r    rt   4  s    z*FirewallClientPolicySettings.queryProtocolc             C   s
   | j d S )Nr1   )r5   )r=   r   r   r    rv   8  s    z+FirewallClientPolicySettings.getSourcePortsc             C   s   || j d< d S )Nr1   )r5   )r=   r*   r   r   r    rw   ;  s    z+FirewallClientPolicySettings.setSourcePortsc             C   s@   ||f| j d kr(| j d j||fƒ nttjd||f ƒ‚d S )Nr1   z'%s:%s')r5   r_   r   r   r`   )r=   rj   rk   r   r   r    rx   >  s    z*FirewallClientPolicySettings.addSourcePortc             C   s@   ||f| j d kr(| j d j||fƒ nttjd||f ƒ‚d S )Nr1   z'%s:%s')r5   rc   r   r   rd   )r=   rj   rk   r   r   r    ry   E  s    z-FirewallClientPolicySettings.removeSourcePortc             C   s   ||f| j d kS )Nr1   )r5   )r=   rj   rk   r   r   r    rz   L  s    z,FirewallClientPolicySettings.querySourcePortc             C   s
   | j d S )Nr+   )r5   )r=   r   r   r    r|   P  s    z*FirewallClientPolicySettings.getIcmpBlocksc             C   s   || j d< d S )Nr+   )r5   )r=   r}   r   r   r    r~   S  s    z*FirewallClientPolicySettings.setIcmpBlocksc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr+   )r5   r_   r   r   r`   )r=   r   r   r   r    r€   V  s    z)FirewallClientPolicySettings.addIcmpBlockc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr+   )r5   rc   r   r   rd   )r=   r   r   r   r    r�   \  s    z,FirewallClientPolicySettings.removeIcmpBlockc             C   s   || j d kS )Nr+   )r5   )r=   r   r   r   r    r‚   b  s    z+FirewallClientPolicySettings.queryIcmpBlockc             C   s
   | j d S )Nr,   )r5   )r=   r   r   r    r‘   f  s    z*FirewallClientPolicySettings.getMasqueradec             C   s   || j d< d S )Nr,   )r5   )r=   r,   r   r   r    r’   i  s    z*FirewallClientPolicySettings.setMasqueradec             C   s&   | j d sd| j d< nttjdƒ d S )Nr,   T)r5   r   r   r`   )r=   r   r   r    r“   l  s    
z*FirewallClientPolicySettings.addMasqueradec             C   s&   | j d rd| j d< nttjdƒ d S )Nr,   F)r5   r   r   rd   )r=   r   r   r    r”   s  s    
z-FirewallClientPolicySettings.removeMasqueradec             C   s
   | j d S )Nr,   )r5   )r=   r   r   r    r•   z  s    z,FirewallClientPolicySettings.queryMasqueradec             C   s
   | j d S )Nr-   )r5   )r=   r   r   r    r—     s    z,FirewallClientPolicySettings.getForwardPortsc             C   s   || j d< d S )Nr-   )r5   )r=   r*   r   r   r    r˜   ‚  s    z,FirewallClientPolicySettings.setForwardPortsc             C   sd   |d krd}|d krd}||||f| j d krH| j d j||||fƒ nttjd||||f ƒ‚d S )Nr#   r-   z'%s:%s:%s:%s')r5   r_   r   r   r`   )r=   rj   rk   r™   rš   r   r   r    r›   …  s    z+FirewallClientPolicySettings.addForwardPortc             C   sd   |d krd}|d krd}||||f| j d krH| j d j||||fƒ nttjd||||f ƒ‚d S )Nr#   r-   z'%s:%s:%s:%s')r5   rc   r   r   rd   )r=   rj   rk   r™   rš   r   r   r    rœ   �  s    z.FirewallClientPolicySettings.removeForwardPortc             C   s.   |d krd}|d krd}||||f| j d kS )Nr#   r-   )r5   )r=   rj   rk   r™   rš   r   r   r    r�   ›  s
    z-FirewallClientPolicySettings.queryForwardPortc             C   s
   | j d S )NrÝ   )r5   )r=   r   r   r    r­   £  s    z)FirewallClientPolicySettings.getRichRulesc             C   s   dd„ |D ƒ}|| j d< d S )Nc             S   s   g | ]}t t|d �ƒ‘qS ))r®   )r   r   )r¯   r°   r   r   r    r±   ¨  s    z=FirewallClientPolicySettings.setRichRules.<locals>.<listcomp>rÝ   )r5   )r=   r²   r   r   r    r³   ¦  s    z)FirewallClientPolicySettings.setRichRulesc             C   s>   t t|d�ƒ}|| jd kr.| jd j|ƒ nttj|ƒ‚d S )N)r®   rÝ   )r   r   r5   r_   r   r   r`   )r=   r´   r   r   r    rµ   ª  s    z(FirewallClientPolicySettings.addRichRulec             C   s>   t t|d�ƒ}|| jd kr.| jd j|ƒ nttj|ƒ‚d S )N)r®   rÝ   )r   r   r5   rc   r   r   rd   )r=   r´   r   r   r    r¶   ±  s    z+FirewallClientPolicySettings.removeRichRulec             C   s   t t|d�ƒ}|| jd kS )N)r®   rÝ   )r   r   r5   )r=   r´   r   r   r    r·   ¸  s    z*FirewallClientPolicySettings.queryRichRulec             C   s
   | j d S )NrÛ   )r5   )r=   r   r   r    ÚgetIngressZones½  s    z,FirewallClientPolicySettings.getIngressZonesc             C   s   || j d< d S )NrÛ   )r5   )r=   rÛ   r   r   r    ÚsetIngressZonesÀ  s    z,FirewallClientPolicySettings.setIngressZonesc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )NrÛ   )r5   r_   r   r   r`   )r=   Úingress_zoner   r   r    ÚaddIngressZoneÃ  s    z+FirewallClientPolicySettings.addIngressZonec             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )NrÛ   )r5   rc   r   r   rd   )r=   rà   r   r   r    ÚremoveIngressZoneÉ  s    z.FirewallClientPolicySettings.removeIngressZonec             C   s   || j d kS )NrÛ   )r5   )r=   rà   r   r   r    ÚqueryIngressZoneÏ  s    z-FirewallClientPolicySettings.queryIngressZonec             C   s
   | j d S )NrÚ   )r5   )r=   r   r   r    ÚgetEgressZonesÓ  s    z+FirewallClientPolicySettings.getEgressZonesc             C   s   || j d< d S )NrÚ   )r5   )r=   rÚ   r   r   r    ÚsetEgressZonesÖ  s    z+FirewallClientPolicySettings.setEgressZonesc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )NrÚ   )r5   r_   r   r   r`   )r=   Úegress_zoner   r   r    ÚaddEgressZoneÙ  s    z*FirewallClientPolicySettings.addEgressZonec             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )NrÚ   )r5   rc   r   r   rd   )r=   ræ   r   r   r    ÚremoveEgressZoneß  s    z-FirewallClientPolicySettings.removeEgressZonec             C   s   || j d kS )NrÚ   )r5   )r=   ræ   r   r   r    ÚqueryEgressZoneå  s    z,FirewallClientPolicySettings.queryEgressZonec             C   s
   | j d S )NrÜ   )r5   )r=   r   r   r    ÚgetPriorityé  s    z(FirewallClientPolicySettings.getPriorityc             C   s   t |ƒ| jd< d S )NrÜ   )Úintr5   )r=   rÜ   r   r   r    ÚsetPriorityì  s    z(FirewallClientPolicySettings.setPriority)N)Jr¸   r¹   rº   r!   r@   rB   rF   r<   rM   rO   rP   rQ   rS   rT   rV   rW   rZ   r[   r]   r^   rb   re   rf   rh   ri   rl   rm   rn   rp   rq   rr   rs   rt   rv   rw   rx   ry   rz   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ß   rá   râ   rã   rä   rå   rç   rè   ré   rê   rì   r   r   r   r    rÙ      sŒ   rÙ   c               @   sÄ   e Zd Zdd„ Zejjjedd„ ƒƒZ	ejjjedd„ ƒƒZ
ejjjedd„ ƒƒZejjjed	d
„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZdS )ÚFirewallClientConfigPolicyc             C   sL   || _ || _| j jtjj|ƒ| _tj| jtjjd�| _	tj| jdd�| _
d S )N)r¿   zorg.freedesktop.DBus.Properties)rÀ   rÁ   rÂ   r   r   rÃ   rÄ   rÅ   ÚDBUS_INTERFACE_CONFIG_POLICYÚ	fw_policyrÈ   )r=   rÀ   rÁ   r   r   r    r@   ñ  s    z#FirewallClientConfigPolicy.__init__c             C   s   t | jjtjj|ƒƒS )N)r	   rÈ   rÉ   r   r   rî   )r=   rÊ   r   r   r    rË   û  s    z'FirewallClientConfigPolicy.get_propertyc             C   s   t | jjtjjƒƒS )N)r	   rÈ   rÌ   r   r   rî   )r=   r   r   r    rÍ     s    z)FirewallClientConfigPolicy.get_propertiesc             C   s   | j jtjj||ƒ d S )N)rÈ   rÎ   r   r   rî   )r=   rÊ   rE   r   r   r    rÏ     s    z'FirewallClientConfigPolicy.set_propertyc             C   s   t t| jjƒ ƒƒS )N)rÙ   r	   rï   rÑ   )r=   r   r   r    rÑ     s    z&FirewallClientConfigPolicy.getSettingsc             C   s   | j j|jƒ ƒ d S )N)rï   rÓ   rM   )r=   r5   r   r   r    rÓ     s    z!FirewallClientConfigPolicy.updatec             C   s   | j jƒ  d S )N)rï   rÔ   )r=   r   r   r    rÔ     s    z'FirewallClientConfigPolicy.loadDefaultsc             C   s   | j jƒ  d S )N)rï   rc   )r=   r   r   r    rc     s    z!FirewallClientConfigPolicy.removec             C   s   | j j|ƒ d S )N)rï   rÕ   )r=   rÖ   r   r   r    rÕ   !  s    z!FirewallClientConfigPolicy.renameN)r¸   r¹   rº   r@   r»   r   r¼   r½   r!   rË   rÍ   rÏ   rÑ   rÓ   rÔ   rc   rÕ   r   r   r   r    rí   ð  s"   
rí   c               @   s8  e Zd Zed^dd„ƒZedd„ ƒZedd„ ƒZedd	„ ƒZed
d„ ƒZedd„ ƒZ	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZed d!„ ƒZed"d#„ ƒZed$d%„ ƒZed&d'„ ƒZed(d)„ ƒZed*d+„ ƒZed,d-„ ƒZed.d/„ ƒZed0d1„ ƒZed2d3„ ƒZed4d5„ ƒZed6d7„ ƒZed8d9„ ƒZed:d;„ ƒZ ed<d=„ ƒZ!ed>d?„ ƒZ"ed@dA„ ƒZ#edBdC„ ƒZ$edDdE„ ƒZ%ed_dFdG„ƒZ&edHdI„ ƒZ'edJdK„ ƒZ(edLdM„ ƒZ)edNdO„ ƒZ*edPdQ„ ƒZ+edRdS„ ƒZ,edTdU„ ƒZ-edVdW„ ƒZ.edXdY„ ƒZ/edZd[„ ƒZ0ed\d]„ ƒZ1dS )`ÚFirewallClientServiceSettingsNc          
   C   sž   dddg g i g g g g g
| _ dddddddd	d
dg
| _ddddddddddg
| _|ršt|ƒtkr„x:t|ƒD ]\}}|| | j |< qhW nt|ƒtkrš| j|ƒ d S )Nr#   r$   r%   r&   r*   ÚmodulesÚdestinationr0   r1   ÚincludesÚhelpersr3   z(ss)Zss)r5   r6   r7   rI   r9   r:   r;   r<   )r=   r5   r>   r?   r   r   r    r@   )  s    z&FirewallClientServiceSettings.__init__c             C   s   d| j | jf S )Nz%s(%r))rA   r5   )r=   r   r   r    rB   9  s    z&FirewallClientServiceSettings.__repr__c             C   s,   i }x"t | j| jƒD ]\}}|||< qW |S )N)rC   r6   r5   )r=   r5   rD   rE   r   r   r    rF   =  s    z-FirewallClientServiceSettings.getSettingsDictc             C   s(   x"|D ]}|| | j | jj|ƒ< qW d S )N)r5   r6   rG   )r=   r5   rD   r   r   r    r<   C  s    
z-FirewallClientServiceSettings.setSettingsDictc             C   sr   i }xht | j| j| jƒD ]R\}}}t|ƒtkrBtj||d�||< qt|ƒtkrbtj	||d�||< q|||< qW |S )N)rH   )
rC   r6   r5   r7   rI   r9   r   rJ   r;   rK   )r=   r5   rD   rE   rL   r   r   r    rM   G  s    z1FirewallClientServiceSettings.getSettingsDbusDictc             C   s
   | j d S )Nr   )r5   )r=   r   r   r    rP   S  s    z(FirewallClientServiceSettings.getVersionc             C   s   || j d< d S )Nr   )r5   )r=   r$   r   r   r    rQ   V  s    z(FirewallClientServiceSettings.setVersionc             C   s
   | j d S )NrR   )r5   )r=   r   r   r    rS   Z  s    z&FirewallClientServiceSettings.getShortc             C   s   || j d< d S )NrR   )r5   )r=   r%   r   r   r    rT   ]  s    z&FirewallClientServiceSettings.setShortc             C   s
   | j d S )NrU   )r5   )r=   r   r   r    rV   a  s    z,FirewallClientServiceSettings.getDescriptionc             C   s   || j d< d S )NrU   )r5   )r=   r&   r   r   r    rW   d  s    z,FirewallClientServiceSettings.setDescriptionc             C   s
   | j d S )Né   )r5   )r=   r   r   r    rh   h  s    z&FirewallClientServiceSettings.getPortsc             C   s   || j d< d S )Nrõ   )r5   )r=   r*   r   r   r    ri   k  s    z&FirewallClientServiceSettings.setPortsc             C   s@   ||f| j d kr(| j d j||fƒ nttjd||f ƒ‚d S )Nrõ   z'%s:%s')r5   r_   r   r   r`   )r=   rj   rk   r   r   r    rl   n  s    z%FirewallClientServiceSettings.addPortc             C   s@   ||f| j d kr(| j d j||fƒ nttjd||f ƒ‚d S )Nrõ   z'%s:%s')r5   rc   r   r   rd   )r=   rj   rk   r   r   r    rm   u  s    z(FirewallClientServiceSettings.removePortc             C   s   ||f| j d kS )Nrõ   )r5   )r=   rj   rk   r   r   r    rn   |  s    z'FirewallClientServiceSettings.queryPortc             C   s
   | j d S )Nrg   )r5   )r=   r   r   r    rp   €  s    z*FirewallClientServiceSettings.getProtocolsc             C   s   || j d< d S )Nrg   )r5   )r=   r0   r   r   r    rq   ƒ  s    z*FirewallClientServiceSettings.setProtocolsc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nrg   )r5   r_   r   r   r`   )r=   rk   r   r   r    rr   †  s    z)FirewallClientServiceSettings.addProtocolc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nrg   )r5   rc   r   r   rd   )r=   rk   r   r   r    rs   Œ  s    z,FirewallClientServiceSettings.removeProtocolc             C   s   || j d kS )Nrg   )r5   )r=   rk   r   r   r    rt   ’  s    z+FirewallClientServiceSettings.queryProtocolc             C   s
   | j d S )Nr{   )r5   )r=   r   r   r    rv   –  s    z,FirewallClientServiceSettings.getSourcePortsc             C   s   || j d< d S )Nr{   )r5   )r=   r*   r   r   r    rw   ™  s    z,FirewallClientServiceSettings.setSourcePortsc             C   s@   ||f| j d kr(| j d j||fƒ nttjd||f ƒ‚d S )Nr{   z'%s:%s')r5   r_   r   r   r`   )r=   rj   rk   r   r   r    rx   œ  s    z+FirewallClientServiceSettings.addSourcePortc             C   s@   ||f| j d kr(| j d j||fƒ nttjd||f ƒ‚d S )Nr{   z'%s:%s')r5   rc   r   r   rd   )r=   rj   rk   r   r   r    ry   £  s    z.FirewallClientServiceSettings.removeSourcePortc             C   s   ||f| j d kS )Nr{   )r5   )r=   rj   rk   r   r   r    rz   ª  s    z-FirewallClientServiceSettings.querySourcePortc             C   s
   | j d S )NrX   )r5   )r=   r   r   r    Ú
getModules®  s    z(FirewallClientServiceSettings.getModulesc             C   s   || j d< d S )NrX   )r5   )r=   rñ   r   r   r    Ú
setModules±  s    z(FirewallClientServiceSettings.setModulesc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )NrX   )r5   r_   r   r   r`   )r=   Úmoduler   r   r    Ú	addModule´  s    z'FirewallClientServiceSettings.addModulec             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )NrX   )r5   rc   r   r   rd   )r=   rø   r   r   r    ÚremoveModuleº  s    z*FirewallClientServiceSettings.removeModulec             C   s   || j d kS )NrX   )r5   )r=   rø   r   r   r    ÚqueryModuleÀ  s    z)FirewallClientServiceSettings.queryModulec             C   s
   | j d S )Nr\   )r5   )r=   r   r   r    ÚgetDestinationsÄ  s    z-FirewallClientServiceSettings.getDestinationsc             C   s   || j d< d S )Nr\   )r5   )r=   Údestinationsr   r   r    ÚsetDestinationsÇ  s    z-FirewallClientServiceSettings.setDestinationsc             C   sH   || j d ks | j d | |kr0|| j d |< nttjd||f ƒ‚d S )Nr\   z'%s:%s')r5   r   r   r`   )r=   Ú	dest_typeÚaddressr   r   r    ÚsetDestinationÊ  s
    z,FirewallClientServiceSettings.setDestinationc             C   s^   || j d krJ|d k	r<| j d | |kr<ttjd||f ƒ‚| j d |= nttjd| ƒ‚d S )Nr\   z'%s:%s'z'%s')r5   r   r   rd   )r=   rÿ   r   r   r   r    ÚremoveDestinationÒ  s    z/FirewallClientServiceSettings.removeDestinationc             C   s    || j d ko|| j d | kS )Nr\   )r5   )r=   rÿ   r   r   r   r    ÚqueryDestinationÛ  s    z.FirewallClientServiceSettings.queryDestinationc             C   s
   | j d S )Nr�   )r5   )r=   r   r   r    ÚgetIncludesà  s    z)FirewallClientServiceSettings.getIncludesc             C   s   || j d< d S )Nr�   )r5   )r=   ró   r   r   r    ÚsetIncludesã  s    z)FirewallClientServiceSettings.setIncludesc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr�   )r5   r_   r   r   r`   )r=   Úincluder   r   r    Ú
addIncludeæ  s    z(FirewallClientServiceSettings.addIncludec             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr�   )r5   rc   r   r   rd   )r=   r  r   r   r    ÚremoveIncludeì  s    z+FirewallClientServiceSettings.removeIncludec             C   s   || j d kS )Nr�   )r5   )r=   r  r   r   r    ÚqueryIncludeò  s    z*FirewallClientServiceSettings.queryIncludec             C   s
   | j d S )Nr–   )r5   )r=   r   r   r    Ú
getHelpersö  s    z(FirewallClientServiceSettings.getHelpersc             C   s   || j d< d S )Nr–   )r5   )r=   rô   r   r   r    Ú
setHelpersù  s    z(FirewallClientServiceSettings.setHelpersc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr–   )r5   r_   r   r   r`   )r=   Úhelperr   r   r    Ú	addHelperü  s    z'FirewallClientServiceSettings.addHelperc             C   s0   || j d kr | j d j|ƒ nttj|ƒ‚d S )Nr–   )r5   rc   r   r   rd   )r=   r  r   r   r    ÚremoveHelper  s    z*FirewallClientServiceSettings.removeHelperc             C   s   || j d kS )Nr–   )r5   )r=   r  r   r   r    ÚqueryHelper  s    z)FirewallClientServiceSettings.queryHelper)N)N)2r¸   r¹   rº   r!   r@   rB   rF   r<   rM   rP   rQ   rS   rT   rV   rW   rh   ri   rl   rm   rn   rp   rq   rr   rs   rt   rv   rw   rx   ry   rz   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ð   (  s`   rð   c               @   sþ   e Zd Zed*dd„ƒZedd„ ƒZedd„ ƒZedd	„ ƒZed
d„ ƒZedd„ ƒZ	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZed d!„ ƒZed"d#„ ƒZed$d%„ ƒZed&d'„ ƒZed(d)„ ƒZdS )+ÚFirewallClientIPSetSettingsNc             C   s"   |r|| _ nddddi g g| _ d S )Nr#   )r5   )r=   r5   r   r   r    r@     s    z$FirewallClientIPSetSettings.__init__c             C   s   d| j | jf S )Nz%s(%r))rA   r5   )r=   r   r   r    rB     s    z$FirewallClientIPSetSettings.__repr__c             C   s
   | j d S )Nr   )r5   )r=   r   r   r    rP     s    z&FirewallClientIPSetSettings.getVersionc             C   s   || j d< d S )Nr   )r5   )r=   r$   r   r   r    rQ     s    z&FirewallClientIPSetSettings.setVersionc             C   s
   | j d S )NrR   )r5   )r=   r   r   r    rS   !  s    z$FirewallClientIPSetSettings.getShortc             C   s   || j d< d S )NrR   )r5   )r=   r%   r   r   r    rT   $  s    z$FirewallClientIPSetSettings.setShortc             C   s
   | j d S )NrU   )r5   )r=   r   r   r    rV   (  s    z*FirewallClientIPSetSettings.getDescriptionc             C   s   || j d< d S )NrU   )r5   )r=   r&   r   r   r    rW   +  s    z*FirewallClientIPSetSettings.setDescriptionc             C   s
   | j d S )Nrõ   )r5   )r=   r   r   r    ÚgetType/  s    z#FirewallClientIPSetSettings.getTypec             C   s   || j d< d S )Nrõ   )r5   )r=   Z
ipset_typer   r   r    ÚsetType2  s    z#FirewallClientIPSetSettings.setTypec             C   s
   | j d S )NrX   )r5   )r=   r   r   r    Ú
getOptions6  s    z&FirewallClientIPSetSettings.getOptionsc             C   s   || j d< d S )NrX   )r5   )r=   Zoptionsr   r   r    Ú
setOptions9  s    z&FirewallClientIPSetSettings.setOptionsc             C   sP   || j d ks | j d | |kr0|| j d |< nttj|rFd||f n|ƒ‚d S )NrX   z'%s=%s')r5   r   r   r`   )r=   rD   rE   r   r   r    Ú	addOption<  s     z%FirewallClientIPSetSettings.addOptionc             C   s,   || j d kr| j d |= nttj|ƒ‚d S )NrX   )r5   r   r   rd   )r=   rD   r   r   r    ÚremoveOptionC  s    z(FirewallClientIPSetSettings.removeOptionc             C   s    || j d ko| j d | |kS )NrX   )r5   )r=   rD   rE   r   r   r    ÚqueryOptionI  s    z'FirewallClientIPSetSettings.queryOptionc             C   s
   | j d S )Nr\   )r5   )r=   r   r   r    Ú
getEntriesM  s    z&FirewallClientIPSetSettings.getEntriesc             C   s@   d| j d kr*| j d d dkr*ttjƒ‚t|ƒ || j d< d S )NÚtimeoutrX   Ú0r\   )r5   r   r   ÚIPSET_WITH_TIMEOUTr   )r=   Úentriesr   r   r    Ú
setEntriesP  s
    
z&FirewallClientIPSetSettings.setEntriesc             C   sr   d| j d kr*| j d d dkr*ttjƒ‚t|ƒ}|| j d krbt|| j d ƒ | j d j|ƒ nttj|ƒ‚d S )Nr  rX   r  r\   )r5   r   r   r  r   r   r_   r`   )r=   Úentryr   r   r    ÚaddEntryW  s    
z$FirewallClientIPSetSettings.addEntryc             C   sb   d| j d kr*| j d d dkr*ttjƒ‚t|ƒ}|| j d krR| j d j|ƒ nttj|ƒ‚d S )Nr  rX   r  r\   )r5   r   r   r  r   rc   rd   )r=   r  r   r   r    ÚremoveEntryb  s    
z'FirewallClientIPSetSettings.removeEntryc             C   s@   d| j d kr*| j d d dkr*ttjƒ‚t|ƒ}|| j d kS )Nr  rX   r  r\   )r5   r   r   r  r   )r=   r  r   r   r    Ú
queryEntryl  s
    
z&FirewallClientIPSetSettings.queryEntry)N)r¸   r¹   rº   r!   r@   rB   rP   rQ   rS   rT   rV   rW   r  r  r  r  r  r  r  r  r  r  r   r!  r   r   r   r    r    s*   
r  c               @   sº  e Zd Zedd„ ƒZejjjedd„ ƒƒZ	ejjjedd„ ƒƒZ
ejjjedd„ ƒƒZejjjed	d
„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd „ ƒƒZejjjed!d"„ ƒƒZejjjed#d$„ ƒƒZejjjed%d&„ ƒƒZejjjed'd(„ ƒƒZd)S )*ÚFirewallClientConfigIPSetc             C   sL   || _ || _| j jtjj|ƒ| _tj| jtjjd�| _	tj| jdd�| _
d S )N)r¿   zorg.freedesktop.DBus.Properties)rÀ   rÁ   rÂ   r   r   rÃ   rÄ   rÅ   ÚDBUS_INTERFACE_CONFIG_IPSETÚfw_ipsetrÈ   )r=   rÀ   rÁ   r   r   r    r@   w  s    z"FirewallClientConfigIPSet.__init__c             C   s   t | jjtjj|ƒƒS )N)r	   rÈ   rÉ   r   r   r#  )r=   rÊ   r   r   r    rË   ‚  s    z&FirewallClientConfigIPSet.get_propertyc             C   s   t | jjtjjƒƒS )N)r	   rÈ   rÌ   r   r   r#  )r=   r   r   r    rÍ   ˆ  s    z(FirewallClientConfigIPSet.get_propertiesc             C   s   | j jtjj||ƒ d S )N)rÈ   rÎ   r   r   r#  )r=   rÊ   rE   r   r   r    rÏ   Ž  s    z&FirewallClientConfigIPSet.set_propertyc             C   s   t tt| jjƒ ƒƒƒS )N)r  r9   r	   r$  rÑ   )r=   r   r   r    rÑ   ”  s    z%FirewallClientConfigIPSet.getSettingsc             C   s   | j jt|jƒƒ d S )N)r$  rÓ   Útupler5   )r=   r5   r   r   r    rÓ   š  s    z FirewallClientConfigIPSet.updatec             C   s   | j jƒ  d S )N)r$  rÔ   )r=   r   r   r    rÔ   Ÿ  s    z&FirewallClientConfigIPSet.loadDefaultsc             C   s   | j jƒ  d S )N)r$  rc   )r=   r   r   r    rc   ¤  s    z FirewallClientConfigIPSet.removec             C   s   | j j|ƒ d S )N)r$  rÕ   )r=   rÖ   r   r   r    rÕ   ©  s    z FirewallClientConfigIPSet.renamec             C   s
   | j jƒ S )N)r$  rP   )r=   r   r   r    rP   °  s    z$FirewallClientConfigIPSet.getVersionc             C   s   | j j|ƒ d S )N)r$  rQ   )r=   r$   r   r   r    rQ   µ  s    z$FirewallClientConfigIPSet.setVersionc             C   s
   | j jƒ S )N)r$  rS   )r=   r   r   r    rS   ¼  s    z"FirewallClientConfigIPSet.getShortc             C   s   | j j|ƒ d S )N)r$  rT   )r=   r%   r   r   r    rT   Á  s    z"FirewallClientConfigIPSet.setShortc             C   s
   | j jƒ S )N)r$  rV   )r=   r   r   r    rV   È  s    z(FirewallClientConfigIPSet.getDescriptionc             C   s   | j j|ƒ d S )N)r$  rW   )r=   r&   r   r   r    rW   Í  s    z(FirewallClientConfigIPSet.setDescriptionc             C   s
   | j jƒ S )N)r$  r  )r=   r   r   r    r  Ô  s    z$FirewallClientConfigIPSet.getEntriesc             C   s   | j j|ƒ d S )N)r$  r  )r=   r  r   r   r    r  Ù  s    z$FirewallClientConfigIPSet.setEntriesc             C   s   | j j|ƒ d S )N)r$  r  )r=   r  r   r   r    r  Þ  s    z"FirewallClientConfigIPSet.addEntryc             C   s   | j j|ƒ d S )N)r$  r   )r=   r  r   r   r    r   ã  s    z%FirewallClientConfigIPSet.removeEntryc             C   s   | j j|ƒS )N)r$  r!  )r=   r  r   r   r    r!  è  s    z$FirewallClientConfigIPSet.queryEntryN)r¸   r¹   rº   r!   r@   r»   r   r¼   r½   rË   rÍ   rÏ   rÑ   rÓ   rÔ   rc   rÕ   rP   rQ   rS   rT   rV   rW   r  r  r  r   r!  r   r   r   r    r"  v  sN   r"  c               @   sÚ   e Zd Zed$dd„ƒZedd„ ƒZedd„ ƒZedd	„ ƒZed
d„ ƒZedd„ ƒZ	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZed d!„ ƒZed"d#„ ƒZdS )%ÚFirewallClientHelperSettingsNc             C   s"   |r|| _ ndddddg g| _ d S )Nr#   )r5   )r=   r5   r   r   r    r@   ð  s    z%FirewallClientHelperSettings.__init__c             C   s   d| j | jf S )Nz%s(%r))rA   r5   )r=   r   r   r    rB   ÷  s    z%FirewallClientHelperSettings.__repr__c             C   s
   | j d S )Nr   )r5   )r=   r   r   r    rP   û  s    z'FirewallClientHelperSettings.getVersionc             C   s   || j d< d S )Nr   )r5   )r=   r$   r   r   r    rQ   þ  s    z'FirewallClientHelperSettings.setVersionc             C   s
   | j d S )NrR   )r5   )r=   r   r   r    rS     s    z%FirewallClientHelperSettings.getShortc             C   s   || j d< d S )NrR   )r5   )r=   r%   r   r   r    rT     s    z%FirewallClientHelperSettings.setShortc             C   s
   | j d S )NrU   )r5   )r=   r   r   r    rV   	  s    z+FirewallClientHelperSettings.getDescriptionc             C   s   || j d< d S )NrU   )r5   )r=   r&   r   r   r    rW     s    z+FirewallClientHelperSettings.setDescriptionc             C   s
   | j d S )Nrõ   )r5   )r=   r   r   r    Ú	getFamily  s    z&FirewallClientHelperSettings.getFamilyc             C   s    |d krd| j d< || j d< d S )Nr#   rõ   )r5   )r=   Úipvr   r   r    Ú	setFamily  s    
z&FirewallClientHelperSettings.setFamilyc             C   s
   | j d S )NrX   )r5   )r=   r   r   r    Ú	getModule  s    z&FirewallClientHelperSettings.getModulec             C   s   || j d< d S )NrX   )r5   )r=   rø   r   r   r    Ú	setModule  s    z&FirewallClientHelperSettings.setModulec             C   s
   | j d S )Nr\   )r5   )r=   r   r   r    rh      s    z%FirewallClientHelperSettings.getPortsc             C   s   || j d< d S )Nr\   )r5   )r=   r*   r   r   r    ri   #  s    z%FirewallClientHelperSettings.setPortsc             C   s@   ||f| j d kr(| j d j||fƒ nttjd||f ƒ‚d S )Nr\   z'%s:%s')r5   r_   r   r   r`   )r=   rj   rk   r   r   r    rl   &  s    z$FirewallClientHelperSettings.addPortc             C   s@   ||f| j d kr(| j d j||fƒ nttjd||f ƒ‚d S )Nr\   z'%s:%s')r5   rc   r   r   rd   )r=   rj   rk   r   r   r    rm   -  s    z'FirewallClientHelperSettings.removePortc             C   s   ||f| j d kS )Nr\   )r5   )r=   rj   rk   r   r   r    rn   4  s    z&FirewallClientHelperSettings.queryPort)N)r¸   r¹   rº   r!   r@   rB   rP   rQ   rS   rT   rV   rW   r'  r)  r*  r+  rh   ri   rl   rm   rn   r   r   r   r    r&  ï  s$   r&  c               @   s  e Zd Zedd„ ƒZejjjedd„ ƒƒZ	ejjjedd„ ƒƒZ
ejjjedd„ ƒƒZejjjed	d
„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd „ ƒƒZejjjed!d"„ ƒƒZejjjed#d$„ ƒƒZejjjed%d&„ ƒƒZejjjed'd(„ ƒƒZejjjed)d*„ ƒƒZejjjed+d,„ ƒƒZejjjed-d.„ ƒƒZejjjed/d0„ ƒƒZd1S )2ÚFirewallClientConfigHelperc             C   sL   || _ || _| j jtjj|ƒ| _tj| jtjjd�| _	tj| jdd�| _
d S )N)r¿   zorg.freedesktop.DBus.Properties)rÀ   rÁ   rÂ   r   r   rÃ   rÄ   rÅ   ÚDBUS_INTERFACE_CONFIG_HELPERÚ	fw_helperrÈ   )r=   rÀ   rÁ   r   r   r    r@   ;  s    z#FirewallClientConfigHelper.__init__c             C   s   t | jjtjj|ƒƒS )N)r	   rÈ   rÉ   r   r   r-  )r=   rÊ   r   r   r    rË   F  s    z'FirewallClientConfigHelper.get_propertyc             C   s   t | jjtjjƒƒS )N)r	   rÈ   rÌ   r   r   r-  )r=   r   r   r    rÍ   L  s    z)FirewallClientConfigHelper.get_propertiesc             C   s   | j jtjj||ƒ d S )N)rÈ   rÎ   r   r   r-  )r=   rÊ   rE   r   r   r    rÏ   R  s    z'FirewallClientConfigHelper.set_propertyc             C   s   t tt| jjƒ ƒƒƒS )N)r&  r9   r	   r.  rÑ   )r=   r   r   r    rÑ   X  s    z&FirewallClientConfigHelper.getSettingsc             C   s   | j jt|jƒƒ d S )N)r.  rÓ   r%  r5   )r=   r5   r   r   r    rÓ   ^  s    z!FirewallClientConfigHelper.updatec             C   s   | j jƒ  d S )N)r.  rÔ   )r=   r   r   r    rÔ   c  s    z'FirewallClientConfigHelper.loadDefaultsc             C   s   | j jƒ  d S )N)r.  rc   )r=   r   r   r    rc   h  s    z!FirewallClientConfigHelper.removec             C   s   | j j|ƒ d S )N)r.  rÕ   )r=   rÖ   r   r   r    rÕ   m  s    z!FirewallClientConfigHelper.renamec             C   s
   | j jƒ S )N)r.  rP   )r=   r   r   r    rP   t  s    z%FirewallClientConfigHelper.getVersionc             C   s   | j j|ƒ d S )N)r.  rQ   )r=   r$   r   r   r    rQ   y  s    z%FirewallClientConfigHelper.setVersionc             C   s
   | j jƒ S )N)r.  rS   )r=   r   r   r    rS   €  s    z#FirewallClientConfigHelper.getShortc             C   s   | j j|ƒ d S )N)r.  rT   )r=   r%   r   r   r    rT   …  s    z#FirewallClientConfigHelper.setShortc             C   s
   | j jƒ S )N)r.  rV   )r=   r   r   r    rV   Œ  s    z)FirewallClientConfigHelper.getDescriptionc             C   s   | j j|ƒ d S )N)r.  rW   )r=   r&   r   r   r    rW   ‘  s    z)FirewallClientConfigHelper.setDescriptionc             C   s
   | j jƒ S )N)r.  rh   )r=   r   r   r    rh   ˜  s    z#FirewallClientConfigHelper.getPortsc             C   s   | j j|ƒ d S )N)r.  ri   )r=   r*   r   r   r    ri   �  s    z#FirewallClientConfigHelper.setPortsc             C   s   | j j||ƒ d S )N)r.  rl   )r=   rj   rk   r   r   r    rl   ¢  s    z"FirewallClientConfigHelper.addPortc             C   s   | j j||ƒ d S )N)r.  rm   )r=   rj   rk   r   r   r    rm   §  s    z%FirewallClientConfigHelper.removePortc             C   s   | j j||ƒS )N)r.  rn   )r=   rj   rk   r   r   r    rn   ¬  s    z$FirewallClientConfigHelper.queryPortc             C   s
   | j jƒ S )N)r.  r'  )r=   r   r   r    r'  ³  s    z$FirewallClientConfigHelper.getFamilyc             C   s$   |d kr| j jdƒ | j j|ƒ d S )Nr#   )r.  r)  )r=   r(  r   r   r    r)  ¸  s    z$FirewallClientConfigHelper.setFamilyc             C   s
   | j jƒ S )N)r.  r*  )r=   r   r   r    r*  Á  s    z$FirewallClientConfigHelper.getModulec             C   s   | j j|ƒ d S )N)r.  r+  )r=   rø   r   r   r    r+  Æ  s    z$FirewallClientConfigHelper.setModuleN) r¸   r¹   rº   r!   r@   r»   r   r¼   r½   rË   rÍ   rÏ   rÑ   rÓ   rÔ   rc   rÕ   rP   rQ   rS   rT   rV   rW   rh   ri   rl   rm   rn   r'  r)  r*  r+  r   r   r   r    r,  :  s^   r,  c               @   sø  e Zd Zedd„ ƒZejjjedd„ ƒƒZ	ejjjedd„ ƒƒZ
ejjjedd„ ƒƒZejjjed	d
„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd „ ƒƒZejjjed!d"„ ƒƒZejjjed#d$„ ƒƒZejjjed%d&„ ƒƒZejjjed'd(„ ƒƒZejjjed)d*„ ƒƒZejjjed+d,„ ƒƒZejjjed-d.„ ƒƒZejjjed/d0„ ƒƒZejjjed1d2„ ƒƒZ ejjjed3d4„ ƒƒZ!ejjjed5d6„ ƒƒZ"ejjjed7d8„ ƒƒZ#ejjjed9d:„ ƒƒZ$ejjjed;d<„ ƒƒZ%ejjjed=d>„ ƒƒZ&ejjjed?d@„ ƒƒZ'ejjjedAdB„ ƒƒZ(ejjjedCdD„ ƒƒZ)ejjjedEdF„ ƒƒZ*ejjjedGdH„ ƒƒZ+ejjjedIdJ„ ƒƒZ,ejjjedKdL„ ƒƒZ-ejjjedMdN„ ƒƒZ.ejjjed^dPdQ„ƒƒZ/ejjjedRdS„ ƒƒZ0ejjjedTdU„ ƒƒZ1ejjjedVdW„ ƒƒZ2ejjjedXdY„ ƒƒZ3ejjjedZd[„ ƒƒZ4ejjjed\d]„ ƒƒZ5dOS )_ÚFirewallClientConfigServicec             C   sL   || _ || _| j jtjj|ƒ| _tj| jtjjd�| _	tj| jdd�| _
d S )N)r¿   zorg.freedesktop.DBus.Properties)rÀ   rÁ   rÂ   r   r   rÃ   rÄ   rÅ   ÚDBUS_INTERFACE_CONFIG_SERVICEÚ
fw_servicerÈ   )r=   rÀ   rÁ   r   r   r    r@   Î  s    z$FirewallClientConfigService.__init__c             C   s   t | jjtjj|ƒƒS )N)r	   rÈ   rÉ   r   r   r0  )r=   rÊ   r   r   r    rË   Ù  s    z(FirewallClientConfigService.get_propertyc             C   s   t | jjtjjƒƒS )N)r	   rÈ   rÌ   r   r   r0  )r=   r   r   r    rÍ   ß  s    z*FirewallClientConfigService.get_propertiesc             C   s   | j jtjj||ƒ d S )N)rÈ   rÎ   r   r   r0  )r=   rÊ   rE   r   r   r    rÏ   å  s    z(FirewallClientConfigService.set_propertyc             C   s   t t| jjƒ ƒƒS )N)rð   r	   r1  rÐ   )r=   r   r   r    rÑ   ë  s    z'FirewallClientConfigService.getSettingsc             C   s   | j j|jƒ ƒ d S )N)r1  rÒ   rM   )r=   r5   r   r   r    rÓ   ñ  s    z"FirewallClientConfigService.updatec             C   s   | j jƒ  d S )N)r1  rÔ   )r=   r   r   r    rÔ   ö  s    z(FirewallClientConfigService.loadDefaultsc             C   s   | j jƒ  d S )N)r1  rc   )r=   r   r   r    rc   û  s    z"FirewallClientConfigService.removec             C   s   | j j|ƒ d S )N)r1  rÕ   )r=   rÖ   r   r   r    rÕ      s    z"FirewallClientConfigService.renamec             C   s
   | j jƒ S )N)r1  rP   )r=   r   r   r    rP     s    z&FirewallClientConfigService.getVersionc             C   s   | j j|ƒ d S )N)r1  rQ   )r=   r$   r   r   r    rQ     s    z&FirewallClientConfigService.setVersionc             C   s
   | j jƒ S )N)r1  rS   )r=   r   r   r    rS     s    z$FirewallClientConfigService.getShortc             C   s   | j j|ƒ d S )N)r1  rT   )r=   r%   r   r   r    rT     s    z$FirewallClientConfigService.setShortc             C   s
   | j jƒ S )N)r1  rV   )r=   r   r   r    rV     s    z*FirewallClientConfigService.getDescriptionc             C   s   | j j|ƒ d S )N)r1  rW   )r=   r&   r   r   r    rW   $  s    z*FirewallClientConfigService.setDescriptionc             C   s
   | j jƒ S )N)r1  rh   )r=   r   r   r    rh   +  s    z$FirewallClientConfigService.getPortsc             C   s   | j j|ƒ d S )N)r1  ri   )r=   r*   r   r   r    ri   0  s    z$FirewallClientConfigService.setPortsc             C   s   | j j||ƒ d S )N)r1  rl   )r=   rj   rk   r   r   r    rl   5  s    z#FirewallClientConfigService.addPortc             C   s   | j j||ƒ d S )N)r1  rm   )r=   rj   rk   r   r   r    rm   :  s    z&FirewallClientConfigService.removePortc             C   s   | j j||ƒS )N)r1  rn   )r=   rj   rk   r   r   r    rn   ?  s    z%FirewallClientConfigService.queryPortc             C   s
   | j jƒ S )N)r1  rp   )r=   r   r   r    rp   F  s    z(FirewallClientConfigService.getProtocolsc             C   s   | j j|ƒ d S )N)r1  rq   )r=   r0   r   r   r    rq   K  s    z(FirewallClientConfigService.setProtocolsc             C   s   | j j|ƒ d S )N)r1  rr   )r=   rk   r   r   r    rr   P  s    z'FirewallClientConfigService.addProtocolc             C   s   | j j|ƒ d S )N)r1  rs   )r=   rk   r   r   r    rs   U  s    z*FirewallClientConfigService.removeProtocolc             C   s   | j j|ƒS )N)r1  rt   )r=   rk   r   r   r    rt   Z  s    z)FirewallClientConfigService.queryProtocolc             C   s
   | j jƒ S )N)r1  rv   )r=   r   r   r    rv   a  s    z*FirewallClientConfigService.getSourcePortsc             C   s   | j j|ƒ d S )N)r1  rw   )r=   r*   r   r   r    rw   f  s    z*FirewallClientConfigService.setSourcePortsc             C   s   | j j||ƒ d S )N)r1  rx   )r=   rj   rk   r   r   r    rx   k  s    z)FirewallClientConfigService.addSourcePortc             C   s   | j j||ƒ d S )N)r1  ry   )r=   rj   rk   r   r   r    ry   p  s    z,FirewallClientConfigService.removeSourcePortc             C   s   | j j||ƒS )N)r1  rz   )r=   rj   rk   r   r   r    rz   u  s    z+FirewallClientConfigService.querySourcePortc             C   s
   | j jƒ S )N)r1  rö   )r=   r   r   r    rö   |  s    z&FirewallClientConfigService.getModulesc             C   s   | j j|ƒ d S )N)r1  r÷   )r=   rñ   r   r   r    r÷   �  s    z&FirewallClientConfigService.setModulesc             C   s   | j j|ƒ d S )N)r1  rù   )r=   rø   r   r   r    rù   †  s    z%FirewallClientConfigService.addModulec             C   s   | j j|ƒ d S )N)r1  rú   )r=   rø   r   r   r    rú   ‹  s    z(FirewallClientConfigService.removeModulec             C   s   | j j|ƒS )N)r1  rû   )r=   rø   r   r   r    rû   �  s    z'FirewallClientConfigService.queryModulec             C   s
   | j jƒ S )N)r1  rü   )r=   r   r   r    rü   —  s    z+FirewallClientConfigService.getDestinationsc             C   s   | j j|ƒ d S )N)r1  rþ   )r=   rý   r   r   r    rþ   œ  s    z+FirewallClientConfigService.setDestinationsc             C   s   | j j|ƒS )N)r1  ÚgetDestination)r=   rò   r   r   r    r2  ¡  s    z*FirewallClientConfigService.getDestinationc             C   s   | j j||ƒ d S )N)r1  r  )r=   rò   r   r   r   r    r  ¦  s    z*FirewallClientConfigService.setDestinationNc             C   s:   |d k	r*| j |ƒ|kr*ttjd||f ƒ‚| jj|ƒ d S )Nz'%s:%s')r2  r   r   rd   r1  r  )r=   rò   r   r   r   r    r  «  s    z-FirewallClientConfigService.removeDestinationc             C   s   | j j||ƒS )N)r1  r  )r=   rò   r   r   r   r    r  ³  s    z,FirewallClientConfigService.queryDestinationc             C   s
   | j jƒ S )N)r1  r  )r=   r   r   r    r  º  s    z'FirewallClientConfigService.getIncludesc             C   s   | j j|ƒ d S )N)r1  r  )r=   ró   r   r   r    r  ¿  s    z'FirewallClientConfigService.setIncludesc             C   s   | j j|ƒ d S )N)r1  r  )r=   r  r   r   r    r  Ä  s    z&FirewallClientConfigService.addIncludec             C   s   | j j|ƒ d S )N)r1  r  )r=   r  r   r   r    r  É  s    z)FirewallClientConfigService.removeIncludec             C   s   | j j|ƒS )N)r1  r	  )r=   r  r   r   r    r	  Î  s    z(FirewallClientConfigService.queryInclude)N)6r¸   r¹   rº   r!   r@   r»   r   r¼   r½   rË   rÍ   rÏ   rÑ   rÓ   rÔ   rc   rÕ   rP   rQ   rS   rT   rV   rW   rh   ri   rl   rm   rn   rp   rq   rr   rs   rt   rv   rw   rx   ry   rz   rö   r÷   rù   rú   rû   rü   rþ   r2  r  r  r  r  r  r  r  r	  r   r   r   r    r/  Í  s¸   r/  c               @   sª   e Zd Zeddd„ƒZedd„ ƒZedd„ ƒZedd	„ ƒZed
d„ ƒZedd„ ƒZ	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZdS )ÚFirewallClientIcmpTypeSettingsNc             C   s   |r|| _ ndddg g| _ d S )Nr#   )r5   )r=   r5   r   r   r    r@   ×  s    z'FirewallClientIcmpTypeSettings.__init__c             C   s   d| j | jf S )Nz%s(%r))rA   r5   )r=   r   r   r    rB   Þ  s    z'FirewallClientIcmpTypeSettings.__repr__c             C   s
   | j d S )Nr   )r5   )r=   r   r   r    rP   â  s    z)FirewallClientIcmpTypeSettings.getVersionc             C   s   || j d< d S )Nr   )r5   )r=   r$   r   r   r    rQ   å  s    z)FirewallClientIcmpTypeSettings.setVersionc             C   s
   | j d S )NrR   )r5   )r=   r   r   r    rS   é  s    z'FirewallClientIcmpTypeSettings.getShortc             C   s   || j d< d S )NrR   )r5   )r=   r%   r   r   r    rT   ì  s    z'FirewallClientIcmpTypeSettings.setShortc             C   s
   | j d S )NrU   )r5   )r=   r   r   r    rV   ð  s    z-FirewallClientIcmpTypeSettings.getDescriptionc             C   s   || j d< d S )NrU   )r5   )r=   r&   r   r   r    rW   ó  s    z-FirewallClientIcmpTypeSettings.setDescriptionc             C   s
   | j d S )Nrõ   )r5   )r=   r   r   r    rü   ÷  s    z.FirewallClientIcmpTypeSettings.getDestinationsc             C   s   || j d< d S )Nrõ   )r5   )r=   rý   r   r   r    rþ   ú  s    z.FirewallClientIcmpTypeSettings.setDestinationsc             C   sH   | j d sttj|ƒ‚n,|| j d kr8| j d j|ƒ nttj|ƒ‚d S )Nrõ   )r5   r   r   r`   r_   )r=   rò   r   r   r    ÚaddDestinationý  s
    
z-FirewallClientIcmpTypeSettings.addDestinationc             C   s\   || j d kr | j d j|ƒ n8| j d sL| jttddgƒt|gƒ ƒƒ nttj|ƒ‚d S )Nrõ   Zipv4Zipv6)r5   rc   rþ   r9   Úsetr   r   rd   )r=   rò   r   r   r    r  	  s    
z0FirewallClientIcmpTypeSettings.removeDestinationc             C   s   | j d  p|| j d kS )Nrõ   )r5   )r=   rò   r   r   r    r  	  s    z/FirewallClientIcmpTypeSettings.queryDestination)N)r¸   r¹   rº   r!   r@   rB   rP   rQ   rS   rT   rV   rW   rü   rþ   r4  r  r  r   r   r   r    r3  Ö  s   	r3  c               @   sº  e Zd Zedd„ ƒZejjjedd„ ƒƒZ	ejjjedd„ ƒƒZ
ejjjedd„ ƒƒZejjjed	d
„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd „ ƒƒZejjjed!d"„ ƒƒZejjjed#d$„ ƒƒZejjjed%d&„ ƒƒZejjjed'd(„ ƒƒZd)S )*ÚFirewallClientConfigIcmpTypec             C   sL   || _ || _| j jtjj|ƒ| _tj| jtjjd�| _	tj| jdd�| _
d S )N)r¿   zorg.freedesktop.DBus.Properties)rÀ   rÁ   rÂ   r   r   rÃ   rÄ   rÅ   ÚDBUS_INTERFACE_CONFIG_ICMPTYPEÚfw_icmptyperÈ   )r=   rÀ   rÁ   r   r   r    r@   	  s    z%FirewallClientConfigIcmpType.__init__c             C   s   t | jjtjj|ƒƒS )N)r	   rÈ   rÉ   r   r   r7  )r=   rÊ   r   r   r    rË   %	  s    z)FirewallClientConfigIcmpType.get_propertyc             C   s   t | jjtjjƒƒS )N)r	   rÈ   rÌ   r   r   r7  )r=   r   r   r    rÍ   +	  s    z+FirewallClientConfigIcmpType.get_propertiesc             C   s   | j jtjj||ƒ d S )N)rÈ   rÎ   r   r   r7  )r=   rÊ   rE   r   r   r    rÏ   1	  s    z)FirewallClientConfigIcmpType.set_propertyc             C   s   t tt| jjƒ ƒƒƒS )N)r3  r9   r	   r8  rÑ   )r=   r   r   r    rÑ   7	  s    z(FirewallClientConfigIcmpType.getSettingsc             C   s   | j jt|jƒƒ d S )N)r8  rÓ   r%  r5   )r=   r5   r   r   r    rÓ   =	  s    z#FirewallClientConfigIcmpType.updatec             C   s   | j jƒ  d S )N)r8  rÔ   )r=   r   r   r    rÔ   B	  s    z)FirewallClientConfigIcmpType.loadDefaultsc             C   s   | j jƒ  d S )N)r8  rc   )r=   r   r   r    rc   G	  s    z#FirewallClientConfigIcmpType.removec             C   s   | j j|ƒ d S )N)r8  rÕ   )r=   rÖ   r   r   r    rÕ   L	  s    z#FirewallClientConfigIcmpType.renamec             C   s
   | j jƒ S )N)r8  rP   )r=   r   r   r    rP   S	  s    z'FirewallClientConfigIcmpType.getVersionc             C   s   | j j|ƒ d S )N)r8  rQ   )r=   r$   r   r   r    rQ   X	  s    z'FirewallClientConfigIcmpType.setVersionc             C   s
   | j jƒ S )N)r8  rS   )r=   r   r   r    rS   _	  s    z%FirewallClientConfigIcmpType.getShortc             C   s   | j j|ƒ d S )N)r8  rT   )r=   r%   r   r   r    rT   d	  s    z%FirewallClientConfigIcmpType.setShortc             C   s
   | j jƒ S )N)r8  rV   )r=   r   r   r    rV   k	  s    z+FirewallClientConfigIcmpType.getDescriptionc             C   s   | j j|ƒ d S )N)r8  rW   )r=   r&   r   r   r    rW   p	  s    z+FirewallClientConfigIcmpType.setDescriptionc             C   s
   | j jƒ S )N)r8  rü   )r=   r   r   r    rü   w	  s    z,FirewallClientConfigIcmpType.getDestinationsc             C   s   | j j|ƒ d S )N)r8  rþ   )r=   rý   r   r   r    rþ   |	  s    z,FirewallClientConfigIcmpType.setDestinationsc             C   s   | j j|ƒ d S )N)r8  r4  )r=   rò   r   r   r    r4  �	  s    z+FirewallClientConfigIcmpType.addDestinationc             C   s   | j j|ƒ d S )N)r8  r  )r=   rò   r   r   r    r  †	  s    z.FirewallClientConfigIcmpType.removeDestinationc             C   s   | j j|ƒS )N)r8  r  )r=   rò   r   r   r    r  ‹	  s    z-FirewallClientConfigIcmpType.queryDestinationN)r¸   r¹   rº   r!   r@   r»   r   r¼   r½   rË   rÍ   rÏ   rÑ   rÓ   rÔ   rc   rÕ   rP   rQ   rS   rT   rV   rW   rü   rþ   r4  r  r  r   r   r   r    r6  	  sN   r6  c               @   s  e Zd Zed.dd„ƒZedd„ ƒZedd„ ƒZedd	„ ƒZed
d„ ƒZedd„ ƒZ	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZed d!„ ƒZed"d#„ ƒZed$d%„ ƒZed&d'„ ƒZed(d)„ ƒZed*d+„ ƒZed,d-„ ƒZdS )/Ú'FirewallClientPoliciesLockdownWhitelistNc             C   s   |r|| _ ng g g g g| _ d S )N)r5   )r=   r5   r   r   r    r@   ”	  s    z0FirewallClientPoliciesLockdownWhitelist.__init__c             C   s   d| j | jf S )Nz%s(%r))rA   r5   )r=   r   r   r    rB   ›	  s    z0FirewallClientPoliciesLockdownWhitelist.__repr__c             C   s
   | j d S )Nr   )r5   )r=   r   r   r    ÚgetCommandsŸ	  s    z3FirewallClientPoliciesLockdownWhitelist.getCommandsc             C   s   || j d< d S )Nr   )r5   )r=   Zcommandsr   r   r    ÚsetCommands¢	  s    z3FirewallClientPoliciesLockdownWhitelist.setCommandsc             C   s"   || j d kr| j d j|ƒ d S )Nr   )r5   r_   )r=   Úcommandr   r   r    Ú
addCommand¥	  s    z2FirewallClientPoliciesLockdownWhitelist.addCommandc             C   s"   || j d kr| j d j|ƒ d S )Nr   )r5   rc   )r=   r<  r   r   r    ÚremoveCommand©	  s    z5FirewallClientPoliciesLockdownWhitelist.removeCommandc             C   s   || j d kS )Nr   )r5   )r=   r<  r   r   r    ÚqueryCommand­	  s    z4FirewallClientPoliciesLockdownWhitelist.queryCommandc             C   s
   | j d S )NrR   )r5   )r=   r   r   r    ÚgetContexts±	  s    z3FirewallClientPoliciesLockdownWhitelist.getContextsc             C   s   || j d< d S )NrR   )r5   )r=   Zcontextsr   r   r    ÚsetContexts´	  s    z3FirewallClientPoliciesLockdownWhitelist.setContextsc             C   s"   || j d kr| j d j|ƒ d S )NrR   )r5   r_   )r=   Úcontextr   r   r    Ú
addContext·	  s    z2FirewallClientPoliciesLockdownWhitelist.addContextc             C   s"   || j d kr| j d j|ƒ d S )NrR   )r5   rc   )r=   rB  r   r   r    ÚremoveContext»	  s    z5FirewallClientPoliciesLockdownWhitelist.removeContextc             C   s   || j d kS )NrR   )r5   )r=   rB  r   r   r    ÚqueryContext¿	  s    z4FirewallClientPoliciesLockdownWhitelist.queryContextc             C   s
   | j d S )NrU   )r5   )r=   r   r   r    ÚgetUsersÃ	  s    z0FirewallClientPoliciesLockdownWhitelist.getUsersc             C   s   || j d< d S )NrU   )r5   )r=   Zusersr   r   r    ÚsetUsersÆ	  s    z0FirewallClientPoliciesLockdownWhitelist.setUsersc             C   s"   || j d kr| j d j|ƒ d S )NrU   )r5   r_   )r=   Úuserr   r   r    ÚaddUserÉ	  s    z/FirewallClientPoliciesLockdownWhitelist.addUserc             C   s"   || j d kr| j d j|ƒ d S )NrU   )r5   rc   )r=   rH  r   r   r    Ú
removeUserÍ	  s    z2FirewallClientPoliciesLockdownWhitelist.removeUserc             C   s   || j d kS )NrU   )r5   )r=   rH  r   r   r    Ú	queryUserÑ	  s    z1FirewallClientPoliciesLockdownWhitelist.queryUserc             C   s
   | j d S )Nrõ   )r5   )r=   r   r   r    ÚgetUidsÕ	  s    z/FirewallClientPoliciesLockdownWhitelist.getUidsc             C   s   || j d< d S )Nrõ   )r5   )r=   Úuidsr   r   r    ÚsetUidsØ	  s    z/FirewallClientPoliciesLockdownWhitelist.setUidsc             C   s"   || j d kr| j d j|ƒ d S )Nrõ   )r5   r_   )r=   Úuidr   r   r    ÚaddUidÛ	  s    z.FirewallClientPoliciesLockdownWhitelist.addUidc             C   s"   || j d kr| j d j|ƒ d S )Nrõ   )r5   rc   )r=   rO  r   r   r    Ú	removeUidß	  s    z1FirewallClientPoliciesLockdownWhitelist.removeUidc             C   s   || j d kS )Nrõ   )r5   )r=   rO  r   r   r    ÚqueryUidã	  s    z0FirewallClientPoliciesLockdownWhitelist.queryUid)N)r¸   r¹   rº   r!   r@   rB   r:  r;  r=  r>  r?  r@  rA  rC  rD  rE  rF  rG  rI  rJ  rK  rL  rN  rP  rQ  rR  r   r   r   r    r9  “	  s.   r9  c               @   sº  e Zd Zedd„ ƒZejjjedd„ ƒƒZ	ejjjedd„ ƒƒZ
ejjjedd„ ƒƒZejjjed	d
„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd „ ƒƒZejjjed!d"„ ƒƒZejjjed#d$„ ƒƒZejjjed%d&„ ƒƒZejjjed'd(„ ƒƒZd)S )*ÚFirewallClientConfigPoliciesc             C   s8   || _ | j jtjjtjjƒ| _tj| jtjjd�| _	d S )N)r¿   )
rÀ   rÂ   r   r   rÃ   ÚDBUS_PATH_CONFIGrÄ   rÅ   ÚDBUS_INTERFACE_CONFIG_POLICIESÚfw_policies)r=   rÀ   r   r   r    r@   ê	  s    z%FirewallClientConfigPolicies.__init__c             C   s   t tt| jjƒ ƒƒƒS )N)r9  r9   r	   rV  ÚgetLockdownWhitelist)r=   r   r   r    rW  ó	  s    z1FirewallClientConfigPolicies.getLockdownWhitelistc             C   s   | j jt|jƒƒ d S )N)rV  ÚsetLockdownWhitelistr%  r5   )r=   r5   r   r   r    rX  ù	  s    z1FirewallClientConfigPolicies.setLockdownWhitelistc             C   s   | j j|ƒ d S )N)rV  ÚaddLockdownWhitelistCommand)r=   r<  r   r   r    rY   
  s    z8FirewallClientConfigPolicies.addLockdownWhitelistCommandc             C   s   | j j|ƒ d S )N)rV  ÚremoveLockdownWhitelistCommand)r=   r<  r   r   r    rZ  
  s    z;FirewallClientConfigPolicies.removeLockdownWhitelistCommandc             C   s   t | jj|ƒƒS )N)r	   rV  ÚqueryLockdownWhitelistCommand)r=   r<  r   r   r    r[  

  s    z:FirewallClientConfigPolicies.queryLockdownWhitelistCommandc             C   s   t | jjƒ ƒS )N)r	   rV  ÚgetLockdownWhitelistCommands)r=   r   r   r    r\  
  s    z9FirewallClientConfigPolicies.getLockdownWhitelistCommandsc             C   s   | j j|ƒ d S )N)rV  ÚaddLockdownWhitelistContext)r=   rB  r   r   r    r]  
  s    z8FirewallClientConfigPolicies.addLockdownWhitelistContextc             C   s   | j j|ƒ d S )N)rV  ÚremoveLockdownWhitelistContext)r=   rB  r   r   r    r^  
  s    z;FirewallClientConfigPolicies.removeLockdownWhitelistContextc             C   s   t | jj|ƒƒS )N)r	   rV  ÚqueryLockdownWhitelistContext)r=   rB  r   r   r    r_   
  s    z:FirewallClientConfigPolicies.queryLockdownWhitelistContextc             C   s   t | jjƒ ƒS )N)r	   rV  ÚgetLockdownWhitelistContexts)r=   r   r   r    r`  %
  s    z9FirewallClientConfigPolicies.getLockdownWhitelistContextsc             C   s   | j j|ƒ d S )N)rV  ÚaddLockdownWhitelistUser)r=   rH  r   r   r    ra  ,
  s    z5FirewallClientConfigPolicies.addLockdownWhitelistUserc             C   s   | j j|ƒ d S )N)rV  ÚremoveLockdownWhitelistUser)r=   rH  r   r   r    rb  1
  s    z8FirewallClientConfigPolicies.removeLockdownWhitelistUserc             C   s   t | jj|ƒƒS )N)r	   rV  ÚqueryLockdownWhitelistUser)r=   rH  r   r   r    rc  6
  s    z7FirewallClientConfigPolicies.queryLockdownWhitelistUserc             C   s   t | jjƒ ƒS )N)r	   rV  ÚgetLockdownWhitelistUsers)r=   r   r   r    rd  ;
  s    z6FirewallClientConfigPolicies.getLockdownWhitelistUsersc             C   s   t | jjƒ ƒS )N)r	   rV  ÚgetLockdownWhitelistUids)r=   r   r   r    re  B
  s    z5FirewallClientConfigPolicies.getLockdownWhitelistUidsc             C   s   | j j|ƒ d S )N)rV  ÚsetLockdownWhitelistUids)r=   rM  r   r   r    rf  G
  s    z5FirewallClientConfigPolicies.setLockdownWhitelistUidsc             C   s   | j j|ƒ d S )N)rV  ÚaddLockdownWhitelistUid)r=   rO  r   r   r    rg  L
  s    z4FirewallClientConfigPolicies.addLockdownWhitelistUidc             C   s   | j j|ƒ d S )N)rV  ÚremoveLockdownWhitelistUid)r=   rO  r   r   r    rh  Q
  s    z7FirewallClientConfigPolicies.removeLockdownWhitelistUidc             C   s   t | jj|ƒƒS )N)r	   rV  ÚqueryLockdownWhitelistUid)r=   rO  r   r   r    ri  V
  s    z6FirewallClientConfigPolicies.queryLockdownWhitelistUidN)r¸   r¹   rº   r!   r@   r»   r   r¼   r½   rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  ri  r   r   r   r    rS  é	  sN   	rS  c               @   s  e Zd Zed.dd„ƒZedd„ ƒZedd„ ƒZedd	„ ƒZed
d„ ƒZedd„ ƒZ	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZed d!„ ƒZed"d#„ ƒZed$d%„ ƒZed&d'„ ƒZed(d)„ ƒZed*d+„ ƒZed,d-„ ƒZdS )/ÚFirewallClientDirectNc             C   s   |r|| _ ng g g g| _ d S )N)r5   )r=   r5   r   r   r    r@   ^
  s    zFirewallClientDirect.__init__c             C   s   d| j | jf S )Nz%s(%r))rA   r5   )r=   r   r   r    rB   e
  s    zFirewallClientDirect.__repr__c             C   s
   | j d S )Nr   )r5   )r=   r   r   r    ÚgetAllChainsi
  s    z!FirewallClientDirect.getAllChainsc                s   ‡ ‡fdd„| j d D ƒS )Nc                s,   g | ]$}|d  ˆ kr|d ˆkr|d ‘qS )r   rR   rU   r   )r¯   r  )r(  Útabler   r    r±   n
  s    z2FirewallClientDirect.getChains.<locals>.<listcomp>r   )r5   )r=   r(  rl  r   )r(  rl  r    Ú	getChainsl
  s    zFirewallClientDirect.getChainsc             C   s   || j d< d S )Nr   )r5   )r=   Zchainsr   r   r    ÚsetAllChainsp
  s    z!FirewallClientDirect.setAllChainsc             C   s,   |||f}|| j d kr(| j d j|ƒ d S )Nr   )r5   r_   )r=   r(  rl  ÚchainÚidxr   r   r    ÚaddChains
  s    
zFirewallClientDirect.addChainc             C   s,   |||f}|| j d kr(| j d j|ƒ d S )Nr   )r5   rc   )r=   r(  rl  ro  rp  r   r   r    ÚremoveChainx
  s    
z FirewallClientDirect.removeChainc             C   s   |||f}|| j d kS )Nr   )r5   )r=   r(  rl  ro  rp  r   r   r    Ú
queryChain}
  s    
zFirewallClientDirect.queryChainc             C   s
   | j d S )NrR   )r5   )r=   r   r   r    ÚgetAllRules‚
  s    z FirewallClientDirect.getAllRulesc                s   ‡ ‡‡fdd„| j d D ƒS )Nc                s<   g | ]4}|d  ˆkr|d ˆkr|d ˆ kr|dd… ‘qS )r   rR   rU   rõ   Nr   )r¯   r  )ro  r(  rl  r   r    r±   ‡
  s    z1FirewallClientDirect.getRules.<locals>.<listcomp>rR   )r5   )r=   r(  rl  ro  r   )ro  r(  rl  r    ÚgetRules…
  s    zFirewallClientDirect.getRulesc             C   s   || j d< d S )NrR   )r5   )r=   r²   r   r   r    ÚsetAllRulesŠ
  s    z FirewallClientDirect.setAllRulesc             C   s0   |||||f}|| j d kr,| j d j|ƒ d S )NrR   )r5   r_   )r=   r(  rl  ro  rÜ   r   rp  r   r   r    ÚaddRule�
  s    zFirewallClientDirect.addRulec             C   s0   |||||f}|| j d kr,| j d j|ƒ d S )NrR   )r5   rc   )r=   r(  rl  ro  rÜ   r   rp  r   r   r    Ú
removeRule’
  s    zFirewallClientDirect.removeRulec             C   sP   xJt | jd ƒD ]8}|d |kr|d |kr|d |kr| jd j|ƒ qW d S )NrR   r   rU   )r9   r5   rc   )r=   r(  rl  ro  rp  r   r   r    ÚremoveRules—
  s    $z FirewallClientDirect.removeRulesc             C   s   |||||f}|| j d kS )NrR   )r5   )r=   r(  rl  ro  rÜ   r   rp  r   r   r    Ú	queryRuleœ
  s    zFirewallClientDirect.queryRulec             C   s
   | j d S )NrU   )r5   )r=   r   r   r    ÚgetAllPassthroughs¡
  s    z'FirewallClientDirect.getAllPassthroughsc             C   s   || j d< d S )NrU   )r5   )r=   Zpassthroughsr   r   r    ÚsetAllPassthroughs¤
  s    z'FirewallClientDirect.setAllPassthroughsc             C   s   g | j d< d S )NrU   )r5   )r=   r   r   r    ÚremoveAllPassthroughs§
  s    z*FirewallClientDirect.removeAllPassthroughsc                s   ‡ fdd„| j d D ƒS )Nc                s    g | ]}|d  ˆ kr|d ‘qS )r   rR   r   )r¯   r  )r(  r   r    r±   ¬
  s    z8FirewallClientDirect.getPassthroughs.<locals>.<listcomp>rU   )r5   )r=   r(  r   )r(  r    ÚgetPassthroughsª
  s    z$FirewallClientDirect.getPassthroughsc             C   s*   ||f}|| j d kr&| j d j|ƒ d S )NrU   )r5   r_   )r=   r(  r   rp  r   r   r    ÚaddPassthrough®
  s    z#FirewallClientDirect.addPassthroughc             C   s*   ||f}|| j d kr&| j d j|ƒ d S )NrU   )r5   rc   )r=   r(  r   rp  r   r   r    ÚremovePassthrough³
  s    z&FirewallClientDirect.removePassthroughc             C   s   ||f}|| j d kS )NrU   )r5   )r=   r(  r   rp  r   r   r    ÚqueryPassthrough¸
  s    z%FirewallClientDirect.queryPassthrough)N)r¸   r¹   rº   r!   r@   rB   rk  rm  rn  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r€  r�  r   r   r   r    rj  ]
  s.   rj  c               @   s¤  e Zd Zedd„ ƒZejjjedd„ ƒƒZ	ejjjedd„ ƒƒZ
ejjjedd„ ƒƒZejjjed	d
„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd „ ƒƒZejjjed!d"„ ƒƒZejjjed#d$„ ƒƒZejjjed%d&„ ƒƒZd'S )(ÚFirewallClientConfigDirectc             C   s8   || _ | j jtjjtjjƒ| _tj| jtjjd�| _	d S )N)r¿   )
rÀ   rÂ   r   r   rÃ   rT  rÄ   rÅ   ÚDBUS_INTERFACE_CONFIG_DIRECTÚ	fw_direct)r=   rÀ   r   r   r    r@   À
  s    z#FirewallClientConfigDirect.__init__c             C   s   t tt| jjƒ ƒƒƒS )N)rj  r9   r	   r„  rÑ   )r=   r   r   r    rÑ   É
  s    z&FirewallClientConfigDirect.getSettingsc             C   s   | j jt|jƒƒ d S )N)r„  rÓ   r%  r5   )r=   r5   r   r   r    rÓ   Ï
  s    z!FirewallClientConfigDirect.updatec             C   s   | j j|||ƒ d S )N)r„  rq  )r=   r(  rl  ro  r   r   r    rq  Ö
  s    z#FirewallClientConfigDirect.addChainc             C   s   | j j|||ƒ d S )N)r„  rr  )r=   r(  rl  ro  r   r   r    rr  Û
  s    z&FirewallClientConfigDirect.removeChainc             C   s   t | jj|||ƒƒS )N)r	   r„  rs  )r=   r(  rl  ro  r   r   r    rs  à
  s    z%FirewallClientConfigDirect.queryChainc             C   s   t | jj||ƒƒS )N)r	   r„  rm  )r=   r(  rl  r   r   r    rm  å
  s    z$FirewallClientConfigDirect.getChainsc             C   s   t | jjƒ ƒS )N)r	   r„  rk  )r=   r   r   r    rk  ê
  s    z'FirewallClientConfigDirect.getAllChainsc             C   s   | j j|||||ƒ d S )N)r„  rw  )r=   r(  rl  ro  rÜ   r   r   r   r    rw  ñ
  s    z"FirewallClientConfigDirect.addRulec             C   s   | j j|||||ƒ d S )N)r„  rx  )r=   r(  rl  ro  rÜ   r   r   r   r    rx  ö
  s    z%FirewallClientConfigDirect.removeRulec             C   s   | j j|||ƒ d S )N)r„  ry  )r=   r(  rl  ro  r   r   r    ry  û
  s    z&FirewallClientConfigDirect.removeRulesc             C   s   t | jj|||||ƒƒS )N)r	   r„  rz  )r=   r(  rl  ro  rÜ   r   r   r   r    rz     s    z$FirewallClientConfigDirect.queryRulec             C   s   t | jj|||ƒƒS )N)r	   r„  ru  )r=   r(  rl  ro  r   r   r    ru    s    z#FirewallClientConfigDirect.getRulesc             C   s   t | jjƒ ƒS )N)r	   r„  rt  )r=   r   r   r    rt  
  s    z&FirewallClientConfigDirect.getAllRulesc             C   s   | j j||ƒ d S )N)r„  r  )r=   r(  r   r   r   r    r    s    z)FirewallClientConfigDirect.addPassthroughc             C   s   | j j||ƒ d S )N)r„  r€  )r=   r(  r   r   r   r    r€    s    z,FirewallClientConfigDirect.removePassthroughc             C   s   t | jj||ƒƒS )N)r	   r„  r�  )r=   r(  r   r   r   r    r�    s    z+FirewallClientConfigDirect.queryPassthroughc             C   s   t | jj|ƒƒS )N)r	   r„  r~  )r=   r(  r   r   r    r~     s    z*FirewallClientConfigDirect.getPassthroughsc             C   s   t | jjƒ ƒS )N)r	   r„  r{  )r=   r   r   r    r{  %  s    z-FirewallClientConfigDirect.getAllPassthroughsN)r¸   r¹   rº   r!   r@   r»   r   r¼   r½   rÑ   rÓ   rq  rr  rs  rm  rk  rw  rx  ry  rz  ru  rt  r  r€  r�  r~  r{  r   r   r   r    r‚  ¿
  sJ   	r‚  c               @   sF  e Zd Zedd„ ƒZejjjedd„ ƒƒZ	ejjjedd„ ƒƒZ
ejjjedd„ ƒƒZejjjed	d
„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd „ ƒƒZejjjed!d"„ ƒƒZejjjed#d$„ ƒƒZejjjed%d&„ ƒƒZejjjed'd(„ ƒƒZejjjed)d*„ ƒƒZejjjed+d,„ ƒƒZejjjed-d.„ ƒƒZejjjed/d0„ ƒƒZejjjed1d2„ ƒƒZ ejjjed3d4„ ƒƒZ!ejjjed5d6„ ƒƒZ"ejjjed7d8„ ƒƒZ#ejjjed9d:„ ƒƒZ$ejjjed;d<„ ƒƒZ%ejjjed=d>„ ƒƒZ&ejjjed?d@„ ƒƒZ'ejjjedAdB„ ƒƒZ(ejjjedCdD„ ƒƒZ)ejjjedEdF„ ƒƒZ*ejjjedGdH„ ƒƒZ+ejjjedIdJ„ ƒƒZ,ejjjedKdL„ ƒƒZ-dMS )NÚFirewallClientConfigc             C   sb   || _ | j jtjjtjjƒ| _tj| jtjjd�| _	tj| jdd�| _
t| j ƒ| _t| j ƒ| _d S )N)r¿   zorg.freedesktop.DBus.Properties)rÀ   rÂ   r   r   rÃ   rT  rÄ   rÅ   ÚDBUS_INTERFACE_CONFIGÚ	fw_configrÈ   rS  Ú	_policiesr‚  Ú_direct)r=   rÀ   r   r   r    r@   -  s    zFirewallClientConfig.__init__c             C   s   t | jjtjj|ƒƒS )N)r	   rÈ   rÉ   r   r   r†  )r=   rÊ   r   r   r    rË   <  s    z!FirewallClientConfig.get_propertyc             C   s   t | jjtjjƒƒS )N)r	   rÈ   rÌ   r   r   r†  )r=   r   r   r    rÍ   B  s    z#FirewallClientConfig.get_propertiesc             C   s   | j jtjj||ƒ d S )N)rÈ   rÎ   r   r   r†  )r=   rÊ   rE   r   r   r    rÏ   H  s    z!FirewallClientConfig.set_propertyc             C   s   t | jjƒ ƒS )N)r	   r‡  ÚgetIPSetNames)r=   r   r   r    rŠ  O  s    z"FirewallClientConfig.getIPSetNamesc             C   s   t | jjƒ ƒS )N)r	   r‡  Ú
listIPSets)r=   r   r   r    r‹  T  s    zFirewallClientConfig.listIPSetsc             C   s   t | j|ƒS )N)r"  rÀ   )r=   rÁ   r   r   r    ÚgetIPSetY  s    zFirewallClientConfig.getIPSetc             C   s   t | jj|ƒƒ}t| j|ƒS )N)r	   r‡  ÚgetIPSetByNamer"  rÀ   )r=   rÖ   rÁ   r   r   r    r�  ^  s    z#FirewallClientConfig.getIPSetByNamec             C   s>   t |tƒr | jj|t|jƒƒ}n| jj|t|ƒƒ}t| j|ƒS )N)r8   r  r‡  ÚaddIPSetr%  r5   r"  rÀ   )r=   rÖ   r5   rÁ   r   r   r    rŽ  d  s    
zFirewallClientConfig.addIPSetc             C   s   t | jjƒ ƒS )N)r	   r‡  ÚgetZoneNames)r=   r   r   r    r�  o  s    z!FirewallClientConfig.getZoneNamesc             C   s   t | jjƒ ƒS )N)r	   r‡  Ú	listZones)r=   r   r   r    r�  t  s    zFirewallClientConfig.listZonesc             C   s   t | j|ƒS )N)r¾   rÀ   )r=   rÁ   r   r   r    ÚgetZoney  s    zFirewallClientConfig.getZonec             C   s   t | jj|ƒƒ}t| j|ƒS )N)r	   r‡  ÚgetZoneByNamer¾   rÀ   )r=   rÖ   rÁ   r   r   r    r’  ~  s    z"FirewallClientConfig.getZoneByNamec             C   s   t | jj|ƒƒS )N)r	   r‡  ÚgetZoneOfInterface)r=   Zifacer   r   r    r“  „  s    z'FirewallClientConfig.getZoneOfInterfacec             C   s   t | jj|ƒƒS )N)r	   r‡  ÚgetZoneOfSource)r=   r¨   r   r   r    r”  ‰  s    z$FirewallClientConfig.getZoneOfSourcec             C   s^   t |tƒr| jj||jƒ ƒ}n4t |tƒr8| jj||ƒ}n| jj|t|d d… ƒƒ}t| j	|ƒS )NrŠ   )
r8   r"   r‡  ZaddZone2rM   r;   ÚaddZoner%  r¾   rÀ   )r=   rÖ   r5   rÁ   r   r   r    r•  Ž  s    

zFirewallClientConfig.addZonec             C   s   t | jjƒ ƒS )N)r	   r‡  ÚgetPolicyNames)r=   r   r   r    r–  �  s    z#FirewallClientConfig.getPolicyNamesc             C   s   t | jjƒ ƒS )N)r	   r‡  ÚlistPolicies)r=   r   r   r    r—  ¢  s    z!FirewallClientConfig.listPoliciesc             C   s   t | j|ƒS )N)rí   rÀ   )r=   rÁ   r   r   r    Ú	getPolicy§  s    zFirewallClientConfig.getPolicyc             C   s   t | jj|ƒƒ}t| j|ƒS )N)r	   r‡  ÚgetPolicyByNamerí   rÀ   )r=   rÖ   rÁ   r   r   r    r™  ¬  s    z$FirewallClientConfig.getPolicyByNamec             C   s8   t |tƒr| jj||jƒ ƒ}n| jj||ƒ}t| j|ƒS )N)r8   rÙ   r‡  Ú	addPolicyrM   rí   rÀ   )r=   rÖ   r5   rÁ   r   r   r    rš  ²  s    
zFirewallClientConfig.addPolicyc             C   s   t | jjƒ ƒS )N)r	   r‡  ÚgetServiceNames)r=   r   r   r    r›  ½  s    z$FirewallClientConfig.getServiceNamesc             C   s   t | jjƒ ƒS )N)r	   r‡  ÚlistServices)r=   r   r   r    rœ  Â  s    z!FirewallClientConfig.listServicesc             C   s   t | j|ƒS )N)r/  rÀ   )r=   rÁ   r   r   r    Ú
getServiceÇ  s    zFirewallClientConfig.getServicec             C   s   t | jj|ƒƒ}t| j|ƒS )N)r	   r‡  ÚgetServiceByNamer/  rÀ   )r=   rÖ   rÁ   r   r   r    rž  Ì  s    z%FirewallClientConfig.getServiceByNamec             C   s`   t |tƒr| jj||jƒ ƒ}n6t|ƒtkr:| jj||ƒ}n| jj|t|d d… ƒƒ}t	| j
|ƒS )Nr�   )r8   rð   r‡  ZaddService2rM   rI   r;   rb   r%  r/  rÀ   )r=   rÖ   r5   rÁ   r   r   r    rb   Ò  s    
zFirewallClientConfig.addServicec             C   s   t | jjƒ ƒS )N)r	   r‡  ÚgetIcmpTypeNames)r=   r   r   r    rŸ  á  s    z%FirewallClientConfig.getIcmpTypeNamesc             C   s   t | jjƒ ƒS )N)r	   r‡  ÚlistIcmpTypes)r=   r   r   r    r   æ  s    z"FirewallClientConfig.listIcmpTypesc             C   s   t | j|ƒS )N)r6  rÀ   )r=   rÁ   r   r   r    ÚgetIcmpTypeë  s    z FirewallClientConfig.getIcmpTypec             C   s   t | jj|ƒƒ}t| j|ƒS )N)r	   r‡  ÚgetIcmpTypeByNamer6  rÀ   )r=   rÖ   rÁ   r   r   r    r¢  ð  s    z&FirewallClientConfig.getIcmpTypeByNamec             C   s>   t |tƒr | jj|t|jƒƒ}n| jj|t|ƒƒ}t| j|ƒS )N)r8   r3  r‡  ÚaddIcmpTyper%  r5   r6  rÀ   )r=   rÖ   r5   rÁ   r   r   r    r£  ö  s    
z FirewallClientConfig.addIcmpTypec             C   s   | j S )N)rˆ  )r=   r   r   r    Úpoliciesÿ  s    zFirewallClientConfig.policiesc             C   s   | j S )N)r‰  )r=   r   r   r    Údirect  s    zFirewallClientConfig.directc             C   s   t | jjƒ ƒS )N)r	   r‡  ÚgetHelperNames)r=   r   r   r    r¦    s    z#FirewallClientConfig.getHelperNamesc             C   s   t | jjƒ ƒS )N)r	   r‡  ÚlistHelpers)r=   r   r   r    r§    s    z FirewallClientConfig.listHelpersc             C   s   t | j|ƒS )N)r,  rÀ   )r=   rÁ   r   r   r    Ú	getHelper  s    zFirewallClientConfig.getHelperc             C   s   t | jj|ƒƒ}t| j|ƒS )N)r	   r‡  ÚgetHelperByNamer,  rÀ   )r=   rÖ   rÁ   r   r   r    r©    s    z$FirewallClientConfig.getHelperByNamec             C   s>   t |tƒr | jj|t|jƒƒ}n| jj|t|ƒƒ}t| j|ƒS )N)r8   r&  r‡  r  r%  r5   r,  rÀ   )r=   rÖ   r5   rÁ   r   r   r    r     s    
zFirewallClientConfig.addHelperN).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—  r˜  r™  rš  r›  rœ  r�  rž  rb   rŸ  r   r¡  r¢  r£  r¤  r¥  r¦  r§  r¨  r©  r  r   r   r   r    r…  ,  s–   

r…  c               @   sè  e Zd Ze�ddd„ƒZedd„ ƒZedd	„ ƒZed
d„ ƒZedd„ ƒZedd„ ƒZ	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjedd„ ƒƒZejjjed d!„ ƒƒZejjjed"d#„ ƒƒZejjjed$d%„ ƒƒZejjjed&d'„ ƒƒZejjjed(d)„ ƒƒZejjjed*d+„ ƒƒZejjjed,d-„ ƒƒZejjjed.d/„ ƒƒZejjjed0d1„ ƒƒZejjjed2d3„ ƒƒZejjjed4d5„ ƒƒZ ejjjed6d7„ ƒƒZ!ejjjed8d9„ ƒƒZ"ejjjed:d;„ ƒƒZ#ejjjed<d=„ ƒƒZ$ejjjed>d?„ ƒƒZ%ejjjed@dA„ ƒƒZ&ejjjedBdC„ ƒƒZ'ejjjedDdE„ ƒƒZ(ejjjedFdG„ ƒƒZ)ejjjedHdI„ ƒƒZ*ejjjedJdK„ ƒƒZ+ejjjedLdM„ ƒƒZ,ejjjedNdO„ ƒƒZ-ejjjedPdQ„ ƒƒZ.ejjjedRdS„ ƒƒZ/ejjjedTdU„ ƒƒZ0ejjjedVdW„ ƒƒZ1ejjjedXdY„ ƒƒZ2ejjjedZd[„ ƒƒZ3ejjjed\d]„ ƒƒZ4ejjjed^d_„ ƒƒZ5ejjjed`da„ ƒƒZ6ejjjedbdc„ ƒƒZ7ejjjeddde„ ƒƒZ8ejjjedfdg„ ƒƒZ9ejjjedhdi„ ƒƒZ:ejjjedjdk„ ƒƒZ;ejjjedldm„ ƒƒZ<ejjjedndo„ ƒƒZ=ejjjedpdq„ ƒƒZ>ejjjedrds„ ƒƒZ?ejjjedtdu„ ƒƒZ@ejjjedvdw„ ƒƒZAejjjedxdy„ ƒƒZBejjjedzd{„ ƒƒZCejjjed|d}„ ƒƒZDejjjed~d„ ƒƒZEejjjed€d�„ ƒƒZFejjjed‚dƒ„ ƒƒZGejjje�dd„d…„ƒƒZHejjjed†d‡„ ƒƒZIejjjedˆd‰„ ƒƒZJejjjedŠd‹„ ƒƒZKejjje�ddŒd�„ƒƒZLejjjedŽd�„ ƒƒZMejjjed�d‘„ ƒƒZNejjjed’d“„ ƒƒZOejjje�dd”d•„ƒƒZPejjjed–d—„ ƒƒZQejjjed˜d™„ ƒƒZRejjjedšd›„ ƒƒZSejjje�ddœd�„ƒƒZTejjjedždŸ„ ƒƒZUejjjed d¡„ ƒƒZVejjjed¢d£„ ƒƒZWejjjed¤d¥„ ƒƒZXejjjed¦d§„ ƒƒZYejjjed¨d©„ ƒƒZZejjje�ddªd«„ƒƒZ[ejjjed¬d­„ ƒƒZ\ejjjed®d¯„ ƒƒZ]ejjje�d d°d±„ƒƒZ^ejjjed²d³„ ƒƒZ_ejjjed´dµ„ ƒƒZ`ejjjed¶d·„ ƒƒZaejjje�d!d¸d¹„ƒƒZbejjjedºd»„ ƒƒZcejjjed¼d½„ ƒƒZdejjjed¾d¿„ ƒƒZeejjje�d"dÀdÁ„ƒƒZfejjjedÂdÃ„ ƒƒZgejjjedÄdÅ„ ƒƒZhejjjedÆdÇ„ ƒƒZiejjjedÈdÉ„ ƒƒZjejjjedÊdË„ ƒƒZkejjjedÌdÍ„ ƒƒZlejjjedÎdÏ„ ƒƒZmejjjedÐdÑ„ ƒƒZnejjjedÒdÓ„ ƒƒZoejjjedÔdÕ„ ƒƒZpejjjedÖd×„ ƒƒZqejjjedØdÙ„ ƒƒZrejjjedÚdÛ„ ƒƒZsejjjedÜdÝ„ ƒƒZtejjjedÞdß„ ƒƒZuejjjedàdá„ ƒƒZvejjjedâdã„ ƒƒZwejjjedädå„ ƒƒZxejjjedædç„ ƒƒZyejjjedèdé„ ƒƒZzejjjedêdë„ ƒƒZ{ejjjedìdí„ ƒƒZ|ejjjedîdï„ ƒƒZ}ejjjedðdñ„ ƒƒZ~ejjjedòdó„ ƒƒZejjjedôdõ„ ƒƒZ€ejjjedöd÷„ ƒƒZ�ejjjedødù„ ƒƒZ‚ejjjedúdû„ ƒƒZƒejjjedüdý„ ƒƒZ„ejjjedþdÿ„ ƒƒZ…ejjje�d �d„ ƒƒZ†ejjje�d�d„ ƒƒZ‡ejjje�d�d„ ƒƒZˆejjje�d�d„ ƒƒZ‰ejjje�d�d	„ ƒƒZŠejjje�d
�d„ ƒƒZ‹ejjje�d�d„ ƒƒZŒejjje�d�d„ ƒƒZ�ejjje�d�d„ ƒƒZŽejjje�d�d„ ƒƒZ�ejjje�d�d„ ƒƒZ�ejjje�d�d„ ƒƒZ‘ejjje�d�d„ ƒƒZ’dS (#  ÚFirewallClientNr   Tc          d   C   s  |s’t jjjdd� ytj jƒ | _d | j_W q˜ tk
rŽ   yt jƒ | _W n6 t j	j
k
r€ } zttj|jƒ ƒ‚W Y d d }~X n
X tdƒ Y q˜X n|| _| jj| jddtj jd� x€tj jtj jtj jtj jtj jtj jtj jtj jtj jtj jtj jtj jtj jtj j tj j!gD ]}| jj| j"|ddd	d
� �qW i | _#dddddddddddddddddddddd d!d"d#d$d%d&d'd'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYœO| _$| j%ƒ  || _&|dZk�rt'j(|| j)ƒ n| j)ƒ  d S )[NT)Zset_as_defaultzNot using slip.dbusZNameOwnerChangedzorg.freedesktop.DBus)Zhandler_functionZsignal_namer¿   Zarg0r¡   ÚmemberrÁ   )r¿   Zinterface_keywordZmember_keywordZpath_keywordzconnection-changedzconnection-establishedzconnection-lostZLogDeniedChangedZDefaultZoneChangedZPanicModeEnabledZPanicModeDisabledZReloadedZServiceAddedZServiceRemovedZ	PortAddedZPortRemovedZSourcePortAddedZSourcePortRemovedZProtocolAddedZProtocolRemovedZMasqueradeAddedZMasqueradeRemovedZForwardPortAddedZForwardPortRemovedZIcmpBlockAddedZIcmpBlockRemovedZIcmpBlockInversionAddedZIcmpBlockInversionRemovedZRichRuleAddedZRichRuleRemovedZInterfaceAddedZInterfaceRemovedZZoneOfInterfaceChangedZSourceAddedZSourceRemovedZZoneOfSourceChangedZZoneUpdatedZPolicyUpdatedZ
EntryAddedZEntryRemovedZ
ChainAddedZChainRemovedZ	RuleAddedZRuleRemovedZPassthroughAddedZPassthroughRemovedzconfig:direct:UpdatedZLockdownEnabledZLockdownDisabledZLockdownWhitelistCommandAddedZLockdownWhitelistCommandRemovedZLockdownWhitelistContextAddedZLockdownWhitelistContextRemovedZLockdownWhitelistUidAddedZLockdownWhitelistUidRemovedZLockdownWhitelistUserAddedZLockdownWhitelistUserRemovedz(config:policies:LockdownWhitelistUpdatedzconfig:IPSetAddedzconfig:IPSetUpdatedzconfig:IPSetRemovedzconfig:IPSetRenamedzconfig:ZoneAddedzconfig:ZoneUpdatedzconfig:ZoneRemovedzconfig:ZoneRenamedzconfig:PolicyAddedzconfig:PolicyUpdatedzconfig:PolicyRemovedzconfig:PolicyRenamedzconfig:ServiceAddedzconfig:ServiceUpdatedzconfig:ServiceRemovedzconfig:ServiceRenamedzconfig:IcmpTypeAddedzconfig:IcmpTypeUpdatedzconfig:IcmpTypeRemovedzconfig:IcmpTypeRenamedzconfig:HelperAddedzconfig:HelperUpdatedzconfig:HelperRemovedzconfig:HelperRenamed)Ozconnection-changedzconnection-establishedzconnection-lostzlog-denied-changedzdefault-zone-changedzpanic-mode-enabledzpanic-mode-disabledZreloadedzservice-addedzservice-removedz
port-addedzport-removedzsource-port-addedzsource-port-removedzprotocol-addedzprotocol-removedzmasquerade-addedzmasquerade-removedzforward-port-addedzforward-port-removedzicmp-block-addedzicmp-block-removedzicmp-block-inversion-addedzicmp-block-inversion-removedzrichrule-addedzrichrule-removedzinterface-addedzinterface-removedzzone-changedzzone-of-interface-changedzsource-addedzsource-removedzzone-of-source-changedzzone-updatedzpolicy-updatedzipset-entry-addedzipset-entry-removedzdirect:chain-addedzdirect:chain-removedzdirect:rule-addedzdirect:rule-removedzdirect:passthrough-addedzdirect:passthrough-removedzconfig:direct:updatedzlockdown-enabledzlockdown-disabledz lockdown-whitelist-command-addedz"lockdown-whitelist-command-removedz lockdown-whitelist-context-addedz"lockdown-whitelist-context-removedzlockdown-whitelist-uid-addedzlockdown-whitelist-uid-removedzlockdown-whitelist-user-addedzlockdown-whitelist-user-removedz*config:policies:lockdown-whitelist-updatedzconfig:ipset-addedzconfig:ipset-updatedzconfig:ipset-removedzconfig:ipset-renamedzconfig:zone-addedzconfig:zone-updatedzconfig:zone-removedzconfig:zone-renamedzconfig:policy-addedzconfig:policy-updatedzconfig:policy-removedzconfig:policy-renamedzconfig:service-addedzconfig:service-updatedzconfig:service-removedzconfig:service-renamedzconfig:icmptype-addedzconfig:icmptype-updatedzconfig:icmptype-removedzconfig:icmptype-renamedzconfig:helper-addedzconfig:helper-updatedzconfig:helper-removedzconfig:helper-renamedr   )*r   ZmainloopZglibZDBusGMainLoopr»   Z	SystemBusrÀ   Zdefault_timeoutr   r   r   r   r   Z
DBUS_ERRORr   ÚprintZadd_signal_receiverÚ_dbus_connection_changedr   rÃ   ÚDBUS_INTERFACE_IPSETÚDBUS_INTERFACE_ZONEÚDBUS_INTERFACE_POLICYÚDBUS_INTERFACE_DIRECTÚDBUS_INTERFACE_POLICIESr†  r#  rÆ   rî   r0  r-  rƒ  r7  rU  Ú_signal_receiverÚ	_callbackÚ
_callbacksÚ
_init_varsÚquietr   Ztimeout_add_secondsÚ_connection_established)r=   rÀ   Úwaitr·  r   r¡   r   r   r    r@   ,  sö    


zFirewallClient.__init__c             C   s:   d | _ d | _d | _d | _d | _d | _d | _d | _d| _d S )NF)	Úfwr$  rÇ   rï   r.  r„  rÈ   Ú_configÚ	connected)r=   r   r   r    r¶  ¾  s    zFirewallClient._init_varsc             C   s   t S )N)r   )r=   r   r   r    ÚgetExceptionHandlerÊ  s    z"FirewallClient.getExceptionHandlerc             C   s   |a d S )N)r   )r=   Zhandlerr   r   r    ÚsetExceptionHandlerÎ  s    z"FirewallClient.setExceptionHandlerc             C   s   t S )N)r   )r=   r   r   r    ÚgetNotAuthorizedLoopÓ  s    z#FirewallClient.getNotAuthorizedLoopc             C   s   |a d S )N)r   )r=   Úenabler   r   r    ÚsetNotAuthorizedLoop×  s    z#FirewallClient.setNotAuthorizedLoopc             G   s0   || j kr ||f| j| j | < ntd| ƒ‚d S )NzUnknown callback name '%s')rµ  r´  Ú
ValueError)r=   rÖ   Úcallbackr   r   r   r    ÚconnectÜ  s    
zFirewallClient.connectc             C   s*   |t jjkrd S |r| jƒ  n| jƒ  d S )N)r   r   rÃ   r¸  Ú_connection_lost)r=   rÖ   Z	old_ownerZ	new_ownerr   r   r    r­  ã  s
    
z'FirewallClient._dbus_connection_changedc             C   sX  y²| j jtjjtjjƒ| _tj| jtjjd�| _tj| jtjj	d�| _
tj| jtjjd�| _tj| jtjjd�| _tj| jtjjd�| _tj| jtjjd�| _tj| jdd�| _W nj tjjk
rê } z| jsÜtd|jƒ ƒ d S d }~X n4 tk
�r } z| j�std|ƒ d S d }~X nX t| j ƒ| _d| _| jdtjjd� | jdtjjd� d S )	N)r¿   zorg.freedesktop.DBus.Propertiesr   r   Tzconnection-established)r«  r¡   zconnection-changed)rÀ   rÂ   r   r   rÃ   Z	DBUS_PATHrÄ   rÅ   rº  r®  r$  r¯  rÇ   r°  rï   r±  r„  r²  rV  rÈ   r   r   r·  r¬  r   r   r…  r»  r¼  r³  )r=   r   r   r   r    r¸  ï  sD    
z&FirewallClient._connection_establishedc             C   s0   | j ƒ  | jdtjjd� | jdtjjd� d S )Nzconnection-lost)r«  r¡   zconnection-changed)r¶  r³  r   r   rÃ   )r=   r   r   r    rÅ    s
    zFirewallClient._connection_lostc       	      O   sª  d|ksd|krd S |d }|d }|j tjjƒr:d| }|j tjjƒrRd| }n |j tjjƒrjd| }nˆ|j tjjƒr‚d| }np|j tjjƒršd| }nX|j tjjƒr²d| }n@|tjj	krÈd	| }n*|tjj
krÞd
| }n|tjjkròd| }d }x<| jD ]2}| j| |krþ| j| | jkrþ| j| j|  }qþW |d k�rBd S dd„ |D ƒ}y(|d �rj|j|d ƒ |d |Ž  W n, tk
�r¤ } zt|ƒ W Y d d }~X nX d S )Nr«  r¡   zconfig:Zonezconfig:Policyzconfig:IPSetzconfig:Servicezconfig:IcmpTypezconfig:Helperzconfig:zconfig:policies:zconfig:direct:c             S   s   g | ]}t |ƒ‘qS r   )r	   )r¯   Úargr   r   r    r±   C  s    z3FirewallClient._signal_receiver.<locals>.<listcomp>rR   r   )Ú
startswithr   r   rÆ   rî   r#  r0  r7  r-  r†  rU  rƒ  rµ  r´  Úextendr   r¬  )	r=   r   r   Úsignalr¡   ÚcbrÃ  Zcb_argsÚmsgr   r   r    r³    sH    








zFirewallClient._signal_receiverc             C   s   | j S )N)r»  )r=   r   r   r    r   M  s    zFirewallClient.configc             C   s   | j jƒ  d S )N)rº  Úreload)r=   r   r   r    rÌ  R  s    zFirewallClient.reloadc             C   s   | j jƒ  d S )N)rº  ZcompleteReload)r=   r   r   r    Úcomplete_reloadW  s    zFirewallClient.complete_reloadc             C   s   | j jƒ  d S )N)rº  ÚruntimeToPermanent)r=   r   r   r    rÎ  \  s    z!FirewallClient.runtimeToPermanentc             C   s   | j jƒ  d S )N)rº  ÚcheckPermanentConfig)r=   r   r   r    rÏ  a  s    z#FirewallClient.checkPermanentConfigc             C   s   t | jjtjj|ƒƒS )N)r	   rÈ   rÉ   r   r   rÃ   )r=   rÊ   r   r   r    rË   f  s    zFirewallClient.get_propertyc             C   s   t | jjtjjƒƒS )N)r	   rÈ   rÌ   r   r   rÃ   )r=   r   r   r    rÍ   l  s    zFirewallClient.get_propertiesc             C   s   | j jtjj||ƒ d S )N)rÈ   rÎ   r   r   rÃ   )r=   rÊ   rE   r   r   r    rÏ   r  s    zFirewallClient.set_propertyc             C   s   | j jƒ  d S )N)rº  ÚenablePanicMode)r=   r   r   r    rÐ  y  s    zFirewallClient.enablePanicModec             C   s   | j jƒ  d S )N)rº  ÚdisablePanicMode)r=   r   r   r    rÑ  ~  s    zFirewallClient.disablePanicModec             C   s   t | jjƒ ƒS )N)r	   rº  ÚqueryPanicMode)r=   r   r   r    rÒ  ƒ  s    zFirewallClient.queryPanicModec             C   s   t t| jj|ƒƒƒS )N)r"   r	   rÇ   ÚgetZoneSettings2)r=   Úzoner   r   r    ÚgetZoneSettingsŠ  s    zFirewallClient.getZoneSettingsc             C   s   t | jjƒ ƒS )N)r	   r$  Ú	getIPSets)r=   r   r   r    rÖ  �  s    zFirewallClient.getIPSetsc             C   s   t tt| jj|ƒƒƒƒS )N)r  r9   r	   r$  ÚgetIPSetSettings)r=   Úipsetr   r   r    r×  ”  s    zFirewallClient.getIPSetSettingsc             C   s   | j j||ƒ d S )N)r$  r  )r=   rØ  r  r   r   r    r  š  s    zFirewallClient.addEntryc             C   s   | j j|ƒS )N)r$  r  )r=   rØ  r   r   r    r  Ÿ  s    zFirewallClient.getEntriesc             C   s   | j j||ƒS )N)r$  r  )r=   rØ  r  r   r   r    r  ¤  s    zFirewallClient.setEntriesc             C   s   | j j||ƒ d S )N)r$  r   )r=   rØ  r  r   r   r    r   ©  s    zFirewallClient.removeEntryc             C   s   t | jj||ƒƒS )N)r	   r$  r!  )r=   rØ  r  r   r   r    r!  ®  s    zFirewallClient.queryEntryc             C   s   t | jjƒ ƒS )N)r	   rº  rœ  )r=   r   r   r    rœ  ³  s    zFirewallClient.listServicesc             C   s   t t| jj|ƒƒƒS )N)rð   r	   rº  ZgetServiceSettings2)r=   ra   r   r   r    ÚgetServiceSettings¸  s    z!FirewallClient.getServiceSettingsc             C   s   t | jjƒ ƒS )N)r	   rº  r   )r=   r   r   r    r   ¾  s    zFirewallClient.listIcmpTypesc             C   s   t tt| jj|ƒƒƒƒS )N)r3  r9   r	   rº  ÚgetIcmpTypeSettings)r=   r   r   r   r    rÚ  Ã  s    z"FirewallClient.getIcmpTypeSettingsc             C   s   t | jjƒ ƒS )N)r	   rº  r
  )r=   r   r   r    r
  É  s    zFirewallClient.getHelpersc             C   s   t tt| jj|ƒƒƒƒS )N)r&  r9   r	   rº  ÚgetHelperSettings)r=   r  r   r   r    rÛ  Î  s    z FirewallClient.getHelperSettingsc             C   s   t | jjƒ ƒS )N)r	   rº  ÚgetAutomaticHelpers)r=   r   r   r    rÜ  Ö  s    z"FirewallClient.getAutomaticHelpersc             C   s   | j j|ƒ d S )N)rº  ÚsetAutomaticHelpers)r=   rE   r   r   r    rÝ  Û  s    z"FirewallClient.setAutomaticHelpersc             C   s   t | jjƒ ƒS )N)r	   rº  ÚgetLogDenied)r=   r   r   r    rÞ  â  s    zFirewallClient.getLogDeniedc             C   s   | j j|ƒ d S )N)rº  ÚsetLogDenied)r=   rE   r   r   r    rß  ç  s    zFirewallClient.setLogDeniedc             C   s   t | jjƒ ƒS )N)r	   rº  ÚgetDefaultZone)r=   r   r   r    rà  î  s    zFirewallClient.getDefaultZonec             C   s   | j j|ƒ d S )N)rº  ÚsetDefaultZone)r=   rÔ  r   r   r    rá  ó  s    zFirewallClient.setDefaultZonec             C   s   | j j||jƒ ƒ d S )N)rÇ   ÚsetZoneSettings2rO   )r=   rÔ  r5   r   r   r    ÚsetZoneSettingsú  s    zFirewallClient.setZoneSettingsc             C   s   t | jjƒ ƒS )N)r	   rÇ   ÚgetZones)r=   r   r   r    rä  ÿ  s    zFirewallClient.getZonesc             C   s   t | jjƒ ƒS )N)r	   rÇ   ÚgetActiveZones)r=   r   r   r    rå    s    zFirewallClient.getActiveZonesc             C   s   t | jj|ƒƒS )N)r	   rÇ   r“  )r=   r¡   r   r   r    r“  	  s    z!FirewallClient.getZoneOfInterfacec             C   s   t | jj|ƒƒS )N)r	   rÇ   r”  )r=   r¨   r   r   r    r”    s    zFirewallClient.getZoneOfSourcec             C   s   t | jj|ƒƒS )N)r	   rÇ   ÚisImmutable)r=   rÔ  r   r   r    ræ    s    zFirewallClient.isImmutablec             C   s   t t| jj|ƒƒƒS )N)rÙ   r	   rï   ÚgetPolicySettings)r=   Úpolicyr   r   r    rç    s    z FirewallClient.getPolicySettingsc             C   s   | j j||jƒ ƒ d S )N)rï   ÚsetPolicySettingsrO   )r=   rè  r5   r   r   r    ré    s    z FirewallClient.setPolicySettingsc             C   s   t | jjƒ ƒS )N)r	   rï   ÚgetPolicies)r=   r   r   r    rê  $  s    zFirewallClient.getPoliciesc             C   s   t | jjƒ ƒS )N)r	   rï   ÚgetActivePolicies)r=   r   r   r    rë  )  s    z FirewallClient.getActivePoliciesc             C   s   t | jj|ƒƒS )N)r	   rï   ræ  )r=   rè  r   r   r    ÚisPolicyImmutable.  s    z FirewallClient.isPolicyImmutablec             C   s   t | jj||ƒƒS )N)r	   rÇ   r¢   )r=   rÔ  r¡   r   r   r    r¢   5  s    zFirewallClient.addInterfacec             C   s   t | jj||ƒƒS )N)r	   rÇ   Ú
changeZone)r=   rÔ  r¡   r   r   r    rí  :  s    zFirewallClient.changeZonec             C   s   t | jj||ƒƒS )N)r	   rÇ   ÚchangeZoneOfInterface)r=   rÔ  r¡   r   r   r    rî  ?  s    
z$FirewallClient.changeZoneOfInterfacec             C   s   t | jj|ƒƒS )N)r	   rÇ   rŸ   )r=   rÔ  r   r   r    rŸ   E  s    zFirewallClient.getInterfacesc             C   s   t | jj||ƒƒS )N)r	   rÇ   r¤   )r=   rÔ  r¡   r   r   r    r¤   J  s    zFirewallClient.queryInterfacec             C   s   t | jj||ƒƒS )N)r	   rÇ   r£   )r=   rÔ  r¡   r   r   r    r£   O  s    zFirewallClient.removeInterfacec             C   s   t | jj||ƒƒS )N)r	   rÇ   r©   )r=   rÔ  r¨   r   r   r    r©   V  s    zFirewallClient.addSourcec             C   s   t | jj||ƒƒS )N)r	   rÇ   ÚchangeZoneOfSource)r=   rÔ  r¨   r   r   r    rï  [  s    z!FirewallClient.changeZoneOfSourcec             C   s   t | jj|ƒƒS )N)r	   rÇ   r¦   )r=   rÔ  r   r   r    r¦   `  s    zFirewallClient.getSourcesc             C   s   t | jj||ƒƒS )N)r	   rÇ   r«   )r=   rÔ  r¨   r   r   r    r«   e  s    zFirewallClient.querySourcec             C   s   t | jj||ƒƒS )N)r	   rÇ   rª   )r=   rÔ  r¨   r   r   r    rª   j  s    zFirewallClient.removeSourcec             C   s   t | jj|||ƒƒS )N)r	   rÇ   rµ   )r=   rÔ  r´   r  r   r   r    rµ   q  s    zFirewallClient.addRichRulec             C   s   t | jj|ƒƒS )N)r	   rÇ   r­   )r=   rÔ  r   r   r    r­   v  s    zFirewallClient.getRichRulesc             C   s   t | jj||ƒƒS )N)r	   rÇ   r·   )r=   rÔ  r´   r   r   r    r·   {  s    zFirewallClient.queryRichRulec             C   s   t | jj||ƒƒS )N)r	   rÇ   r¶   )r=   rÔ  r´   r   r   r    r¶   €  s    zFirewallClient.removeRichRulec             C   s   t | jj|||ƒƒS )N)r	   rÇ   rb   )r=   rÔ  ra   r  r   r   r    rb   ‡  s    zFirewallClient.addServicec             C   s   t | jj|ƒƒS )N)r	   rÇ   r]   )r=   rÔ  r   r   r    r]   Œ  s    zFirewallClient.getServicesc             C   s   t | jj||ƒƒS )N)r	   rÇ   rf   )r=   rÔ  ra   r   r   r    rf   ‘  s    zFirewallClient.queryServicec             C   s   t | jj||ƒƒS )N)r	   rÇ   re   )r=   rÔ  ra   r   r   r    re   –  s    zFirewallClient.removeServicec             C   s   t | jj||||ƒƒS )N)r	   rÇ   rl   )r=   rÔ  rj   rk   r  r   r   r    rl   �  s    zFirewallClient.addPortc             C   s   t | jj|ƒƒS )N)r	   rÇ   rh   )r=   rÔ  r   r   r    rh   ¢  s    zFirewallClient.getPortsc             C   s   t | jj|||ƒƒS )N)r	   rÇ   rn   )r=   rÔ  rj   rk   r   r   r    rn   §  s    zFirewallClient.queryPortc             C   s   t | jj|||ƒƒS )N)r	   rÇ   rm   )r=   rÔ  rj   rk   r   r   r    rm   ¬  s    zFirewallClient.removePortc             C   s   t | jj|||ƒƒS )N)r	   rÇ   rr   )r=   rÔ  rk   r  r   r   r    rr   ³  s    zFirewallClient.addProtocolc             C   s   t | jj|ƒƒS )N)r	   rÇ   rp   )r=   rÔ  r   r   r    rp   ¸  s    zFirewallClient.getProtocolsc             C   s   t | jj||ƒƒS )N)r	   rÇ   rt   )r=   rÔ  rk   r   r   r    rt   ½  s    zFirewallClient.queryProtocolc             C   s   t | jj||ƒƒS )N)r	   rÇ   rs   )r=   rÔ  rk   r   r   r    rs   Â  s    zFirewallClient.removeProtocolc             C   s   | j j|ddiƒ d S )Nr2   T)rÇ   râ  )r=   rÔ  r   r   r    r�   É  s    zFirewallClient.addForwardc             C   s   t | jj|ƒƒd S )Nr2   )r	   rÇ   rÓ  )r=   rÔ  r   r   r    r�   Î  s    zFirewallClient.queryForwardc             C   s   | j j|ddiƒ d S )Nr2   F)rÇ   râ  )r=   rÔ  r   r   r    rŽ   Ó  s    zFirewallClient.removeForwardc             C   s   t | jj||ƒƒS )N)r	   rÇ   r“   )r=   rÔ  r  r   r   r    r“   Ú  s    zFirewallClient.addMasqueradec             C   s   t | jj|ƒƒS )N)r	   rÇ   r•   )r=   rÔ  r   r   r    r•   ß  s    zFirewallClient.queryMasqueradec             C   s   t | jj|ƒƒS )N)r	   rÇ   r”   )r=   rÔ  r   r   r    r”   ä  s    zFirewallClient.removeMasqueradec             C   s2   |d krd}|d krd}t | jj||||||ƒƒS )Nr#   )r	   rÇ   r›   )r=   rÔ  rj   rk   r×   rØ   r  r   r   r    r›   ë  s    zFirewallClient.addForwardPortc             C   s   t | jj|ƒƒS )N)r	   rÇ   r—   )r=   rÔ  r   r   r    r—   ÷  s    zFirewallClient.getForwardPortsc             C   s0   |d krd}|d krd}t | jj|||||ƒƒS )Nr#   )r	   rÇ   r�   )r=   rÔ  rj   rk   r×   rØ   r   r   r    r�   ü  s    
zFirewallClient.queryForwardPortc             C   s0   |d krd}|d krd}t | jj|||||ƒƒS )Nr#   )r	   rÇ   rœ   )r=   rÔ  rj   rk   r×   rØ   r   r   r    rœ     s    
z FirewallClient.removeForwardPortc             C   s   t | jj||||ƒƒS )N)r	   rÇ   rx   )r=   rÔ  rj   rk   r  r   r   r    rx     s    zFirewallClient.addSourcePortc             C   s   t | jj|ƒƒS )N)r	   rÇ   rv   )r=   rÔ  r   r   r    rv     s    zFirewallClient.getSourcePortsc             C   s   t | jj|||ƒƒS )N)r	   rÇ   rz   )r=   rÔ  rj   rk   r   r   r    rz     s    zFirewallClient.querySourcePortc             C   s   t | jj|||ƒƒS )N)r	   rÇ   ry   )r=   rÔ  rj   rk   r   r   r    ry   $  s    zFirewallClient.removeSourcePortc             C   s   t | jj|||ƒƒS )N)r	   rÇ   r€   )r=   rÔ  Úicmpr  r   r   r    r€   ,  s    zFirewallClient.addIcmpBlockc             C   s   t | jj|ƒƒS )N)r	   rÇ   r|   )r=   rÔ  r   r   r    r|   1  s    zFirewallClient.getIcmpBlocksc             C   s   t | jj||ƒƒS )N)r	   rÇ   r‚   )r=   rÔ  rð  r   r   r    r‚   6  s    zFirewallClient.queryIcmpBlockc             C   s   t | jj||ƒƒS )N)r	   rÇ   r�   )r=   rÔ  rð  r   r   r    r�   ;  s    zFirewallClient.removeIcmpBlockc             C   s   t | jj|ƒƒS )N)r	   rÇ   r‡   )r=   rÔ  r   r   r    r‡   B  s    z$FirewallClient.addIcmpBlockInversionc             C   s   t | jj|ƒƒS )N)r	   rÇ   r‰   )r=   rÔ  r   r   r    r‰   G  s    z&FirewallClient.queryIcmpBlockInversionc             C   s   t | jj|ƒƒS )N)r	   rÇ   rˆ   )r=   rÔ  r   r   r    rˆ   L  s    z'FirewallClient.removeIcmpBlockInversionc             C   s   | j j|||ƒ d S )N)r„  rq  )r=   r(  rl  ro  r   r   r    rq  S  s    zFirewallClient.addChainc             C   s   | j j|||ƒ d S )N)r„  rr  )r=   r(  rl  ro  r   r   r    rr  X  s    zFirewallClient.removeChainc             C   s   t | jj|||ƒƒS )N)r	   r„  rs  )r=   r(  rl  ro  r   r   r    rs  ]  s    zFirewallClient.queryChainc             C   s   t | jj||ƒƒS )N)r	   r„  rm  )r=   r(  rl  r   r   r    rm  b  s    zFirewallClient.getChainsc             C   s   t | jjƒ ƒS )N)r	   r„  rk  )r=   r   r   r    rk  g  s    zFirewallClient.getAllChainsc             C   s   | j j|||||ƒ d S )N)r„  rw  )r=   r(  rl  ro  rÜ   r   r   r   r    rw  n  s    zFirewallClient.addRulec             C   s   | j j|||||ƒ d S )N)r„  rx  )r=   r(  rl  ro  rÜ   r   r   r   r    rx  s  s    zFirewallClient.removeRulec             C   s   | j j|||ƒ d S )N)r„  ry  )r=   r(  rl  ro  r   r   r    ry  x  s    zFirewallClient.removeRulesc             C   s   t | jj|||||ƒƒS )N)r	   r„  rz  )r=   r(  rl  ro  rÜ   r   r   r   r    rz  }  s    zFirewallClient.queryRulec             C   s   t | jj|||ƒƒS )N)r	   r„  ru  )r=   r(  rl  ro  r   r   r    ru  ‚  s    zFirewallClient.getRulesc             C   s   t | jjƒ ƒS )N)r	   r„  rt  )r=   r   r   r    rt  ‡  s    zFirewallClient.getAllRulesc             C   s   t | jj||ƒƒS )N)r	   r„  Úpassthrough)r=   r(  r   r   r   r    rñ  Ž  s    zFirewallClient.passthroughc             C   s   t | jjƒ ƒS )N)r	   r„  r{  )r=   r   r   r    r{  •  s    z!FirewallClient.getAllPassthroughsc             C   s   | j jƒ  d S )N)r„  r}  )r=   r   r   r    r}  š  s    z$FirewallClient.removeAllPassthroughsc             C   s   t | jj|ƒƒS )N)r	   r„  r~  )r=   r(  r   r   r    r~  Ÿ  s    zFirewallClient.getPassthroughsc             C   s   | j j||ƒ d S )N)r„  r  )r=   r(  r   r   r   r    r  ¤  s    zFirewallClient.addPassthroughc             C   s   | j j||ƒ d S )N)r„  r€  )r=   r(  r   r   r   r    r€  ©  s    z FirewallClient.removePassthroughc             C   s   t | jj||ƒƒS )N)r	   r„  r�  )r=   r(  r   r   r   r    r�  ®  s    zFirewallClient.queryPassthroughc             C   s   | j jƒ  d S )N)rV  ÚenableLockdown)r=   r   r   r    rò  µ  s    zFirewallClient.enableLockdownc             C   s   | j jƒ  d S )N)rV  ÚdisableLockdown)r=   r   r   r    ró  º  s    zFirewallClient.disableLockdownc             C   s   t | jjƒ ƒS )N)r	   rV  ÚqueryLockdown)r=   r   r   r    rô  ¿  s    zFirewallClient.queryLockdownc             C   s   | j j|ƒ d S )N)rV  rY  )r=   r<  r   r   r    rY  È  s    z*FirewallClient.addLockdownWhitelistCommandc             C   s   t | jjƒ ƒS )N)r	   rV  r\  )r=   r   r   r    r\  Í  s    z+FirewallClient.getLockdownWhitelistCommandsc             C   s   t | jj|ƒƒS )N)r	   rV  r[  )r=   r<  r   r   r    r[  Ò  s    z,FirewallClient.queryLockdownWhitelistCommandc             C   s   | j j|ƒ d S )N)rV  rZ  )r=   r<  r   r   r    rZ  ×  s    z-FirewallClient.removeLockdownWhitelistCommandc             C   s   | j j|ƒ d S )N)rV  r]  )r=   rB  r   r   r    r]  Þ  s    z*FirewallClient.addLockdownWhitelistContextc             C   s   t | jjƒ ƒS )N)r	   rV  r`  )r=   r   r   r    r`  ã  s    z+FirewallClient.getLockdownWhitelistContextsc             C   s   t | jj|ƒƒS )N)r	   rV  r_  )r=   rB  r   r   r    r_  è  s    z,FirewallClient.queryLockdownWhitelistContextc             C   s   | j j|ƒ d S )N)rV  r^  )r=   rB  r   r   r    r^  í  s    z-FirewallClient.removeLockdownWhitelistContextc             C   s   | j j|ƒ d S )N)rV  rg  )r=   rO  r   r   r    rg  ô  s    z&FirewallClient.addLockdownWhitelistUidc             C   s   t | jjƒ ƒS )N)r	   rV  re  )r=   r   r   r    re  ù  s    z'FirewallClient.getLockdownWhitelistUidsc             C   s   t | jj|ƒƒS )N)r	   rV  ri  )r=   rO  r   r   r    ri  þ  s    z(FirewallClient.queryLockdownWhitelistUidc             C   s   | j j|ƒ d S )N)rV  rh  )r=   rO  r   r   r    rh    s    z)FirewallClient.removeLockdownWhitelistUidc             C   s   | j j|ƒ d S )N)rV  ra  )r=   rH  r   r   r    ra  
  s    z'FirewallClient.addLockdownWhitelistUserc             C   s   t | jjƒ ƒS )N)r	   rV  rd  )r=   r   r   r    rd    s    z(FirewallClient.getLockdownWhitelistUsersc             C   s   t | jj|ƒƒS )N)r	   rV  rc  )r=   rH  r   r   r    rc    s    z)FirewallClient.queryLockdownWhitelistUserc             C   s   | j j|ƒ d S )N)rV  rb  )r=   rH  r   r   r    rb    s    z*FirewallClient.removeLockdownWhitelistUserc             C   s   | j jƒ  dS )z( Authorize once for all polkit actions. N)rº  ÚauthorizeAll)r=   r   r   r    rõ    s    zFirewallClient.authorizeAll)Nr   T)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¼   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Û  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¦   r«   rª   rµ   r­   r·   r¶   rb   r]   rf   re   rl   rh   rn   rm   rr   rp   rt   rs   r�   r�   rŽ   r“   r•   r”   r›   r—   r�   rœ   rx   rv   rz   ry   r€   r|   r‚   r�   r‡   r‰   rˆ   rq  rr  rs  rm  rk  rw  rx  ry  rz  ru  rt  rñ  r{  r}  r~  r  r€  r�  rò  ró  rô  rY  r\  r[  rZ  r]  r`  r_  r^  rg  re  ri  rh  ra  rd  rc  rb  rõ  r   r   r   r    rª  +  s*   &0	
rª  )4Zgi.repositoryr   r   Úsysrñ   Zdbus.mainloop.glibr   Z	slip.dbusr»   r   Zfirewallr   Zfirewall.core.baser   r   r   Zfirewall.dbus_utilsr	   Zfirewall.functionsr
   Zfirewall.core.richr   Zfirewall.core.ipsetr   r   r   r   Zfirewall.errorsr   r   r   r   r!   Úobjectr"   r¾   rÙ   rí   rð   r  r"  r&  r,  r/  r3  r6  r9  rS  rj  r‚  r…  rª  r   r   r   r    Ú<module>   sd   
'      ;  R8 ghyK   CzVtbm  