
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
³Y„jù  ã               @   s’   d gZ ddlZddlZddlmZmZ eejd< ddlZddlZddl	Zddl
ZddlmZ ddlmZ ddlmZ dd	„ Zd
d„ Zddd „ZdS )Ú
run_serveré    N)ÚGObjectÚGLibZgobject)Úconfig)Úlog)Ú	FirewallDc             C   s   | j ƒ  dS )NT)Úreload)Úservice© r
   ú/usr/lib/python3.6/server.pyÚsighup4   s    r   c             C   s   | j ƒ  d S )N)Úquit)Úmainloopr
   r
   r   Úsigterm8   s    r   Fc                sx  d}| rFddl m‰ ddl‰ ˆ jƒ  ˆ jˆ jƒ d‰‡ ‡‡‡fdd„‰y¨tjjj	dd� tj
ƒ }tjjtjj|d	�}t|tjjƒ}tjƒ }tjjj|ƒ | r¨tjˆˆƒ ttd
ƒrºtj}ntj}|tjtjt|ƒ |tjtjt|ƒ |jƒ  W nv t k
�r   t!j"dƒ Y nX t#k
�r,   t!j$dƒ Y n: t%k
�rd } zt!j$d|j&j't(|ƒƒ W Y dd}~X nX |�rt|j)ƒ  dS )zI Main function for firewall server. Handles D-Bus and GLib mainloop.
    Nr   )Úpformaté
   c                 sr   ˆ j ƒ  tˆ jƒdkrbtdƒ tdtˆ jƒ ƒ x(ˆ jD ]} tt| ƒdƒ tˆ| ƒƒ q8W tdƒ tjˆˆƒ d S )Nr   zP
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
zGARBAGE OBJECTS (%d):
z
  zP
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
)ZcollectÚlenZgarbageÚprintÚtyper   Útimeout_add_seconds)Úx)ÚgcÚ
gc_collectÚ
gc_timeoutr   r
   r   r   L   s    zrun_server.<locals>.gc_collectT)Zset_as_default)ÚbusÚunix_signal_addz
Stopping..z Raising SystemExit in run_serverzException %s: %s)*Úpprintr   r   ÚenableZ	set_debugZ
DEBUG_LEAKÚdbusr   ZglibZDBusGMainLoopZ	SystemBusr	   ZBusNamer   ZDBUS_INTERFACEr   Z	DBUS_PATHr   ZMainLoopÚslipZset_mainloopr   Úhasattrr   Zunix_signal_add_fullZPRIORITY_HIGHÚsignalÚSIGHUPr   ÚSIGTERMr   ZrunÚKeyboardInterruptr   Zdebug1Ú
SystemExitÚerrorÚ	ExceptionÚ	__class__Ú__name__ÚstrÚstop)Zdebug_gcr	   r   Únamer   r   Úer
   )r   r   r   r   r   r   A   sB    


()F)Ú__all__Úsysr!   Zgi.repositoryr   r   Úmodulesr   Zdbus.serviceZdbus.mainloop.glibZ	slip.dbusr   Zfirewallr   Zfirewall.core.loggerr   Zfirewall.server.firewalldr   r   r   r   r
   r
   r
   r   Ú<module>   s   
	