
    |~gl                         U d dl mZmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZ erd dlmZ eeedZeeed   f   ed<    G d	 d
e
      Zy)    )CallableUnionDictTypeTYPE_CHECKING)Network)MechanismPlugin)NetConfDnsMasqHandlerDhcpdHandlerUdhcpdHandler)DHCPHandler)r   r   r   r   DHCPDHANDLERSc                       e Zd ZddZdededeegdf   deeeef   gdf   ddf
dZ	d	ed
edede
deddfdZdeddfdZy)r   returnNc                    | j                   j                  ddd| j                  dd       | j                   j                  ddd| j                  d	       | j                   j                  d
dd| j                  d	       y )N
DhcpClient)sr   T)pass_senderis_asyncEnableNetwork)r   r   r   b )r   DisableNetwork )parent
add_method_run_dhcp_client_enable_network_disable_network)selfs    C/usr/lib/python3/dist-packages/blueman/plugins/mechanism/Network.pyon_loadzNetwork.on_load   ss    |VS$:O:O]alpq0Db$J^J^lpq/R9N9N\`a    object_pathcallerokerrc                      j                   j                           j                  |d       ddlm} d|dt
        dd f fd}d|dt        dd f fd	} |t        |
      d         }|j                  d|       |j                  d|       	 |j                          y # t        $ r}	 |	       Y d }	~	y d }	~	ww xY w)Nzorg.blueman.dhcp.clientr   )r   _dhnumr   c                 J     |       j                   j                          y Ntimerresume)r*   r+   r(   r!   s     r"   dh_errorz*Network._run_dhcp_client.<locals>.dh_error   s    HJJr$   ipc                 J     |       j                   j                          y r-   r.   )r*   r2   r'   r!   s     r"   dh_connectedz.Network._run_dhcp_client.<locals>.dh_connected#   s    rFJJr$   )obj_path	Interfacezerror-occurred	connected)r/   stopconfirm_authorizationblueman.main.DhcpClientr   intstrBluezNetworkconnectrun	Exception)
r!   r%   r&   r'   r(   r   r1   r4   dhes
   `  ``     r"   r   zNetwork._run_dhcp_client   s    

""6+DE6	 * 	 3 	 4 	 	 j 	 c 	 d 	  k:;GH


#X.


;-	FFH 	FF	s   B# #	B>,B99B>
ip_addressnetmaskdhcp_handleraddress_changedc                 f    | j                  |d       t        j                  ||t        |   |       y Nzorg.blueman.network.setup)r9   r
   apply_settingsr   )r!   rC   rD   rE   rF   r&   s         r"   r   zNetwork._enable_network/   s-    ""6+FGz7M,4OQ`ar$   c                 P    | j                  |d       t        j                          y rH   )r9   r
   clean_up)r!   r&   s     r"   r    zNetwork._disable_network4   s    ""6+FGr$   )r   N)__name__
__module____qualname__r#   r<   r   r   r@   r;   r   boolr   r    r   r$   r"   r   r      s    b
C  (C5RV;BW &in(='>'DEJN0b# b b3 bae b #b(,b
s t r$   r   N)typingr   r   r   r   r   blueman.bluez.Networkr   r=   blueman.plugins.MechanismPluginr	   blueman.main.NetConfr
   r   r   r   r   r   r<   __annotations__r   r$   r"   <module>rU      sQ    = = 9 ; U U0 % "1tCm,,- %o %r$   