
    /I_                         S SK r S SKr S SKJr  S SKJs  Jr  S SK7  S SKJ	r	  S SK
Jr  S SKJr   " S S\\5      rg! \\4 a&    S SKJr  S SKJr  S SK7  S SKJ	r	  S SKJr  S SKJr   N:f = f)	    N)Addon)*)utils)
moduleBase)moduleNotSupportedc                       \ rS rSrSrSSS/SS/S.S	S
/SS/S.S.S.rS r\S 5       rS r	S r
SS jrS rS r\	\
\\S.rS rSS jrSrg)ppp   z)
ifupdown2 addon module to configure ppp
zcreate/configure ppp interfaceszProvider file in pppz<text>Tzdsl-provider)help	validvalsrequiredexamplez.Physical underlay device to use for ppp if anyz<interface>Fzppp-physdev eth1)providerppp-physdev)mhelpattrsc                     [         R                  " U 5        [        R                  " U /UQ70 UD6  [        R                  R                  S5      (       d  [        S5      eg )N/usr/bin/ponz)module init failed: no /usr/bin/pon found)r   __init__r   ospathexistsr   )selfargskargss      "/usr/share/ifupdown2/addons/ppp.pyr   ppp.__init__2   sJ    tD14151ww~~n--$%PQQ .    c                 P    U R                   S:H  =(       a    U R                  S5      $ )Nr	   r   )addr_methodget_attr_value_first)ifaceobjs    r   _is_my_interfaceppp._is_my_interface8   s#    ##u,Z1N1Nz1ZZr   c                 X   UR                  S5      nSnSn [        R                  R                  SU5      n[        R                  R	                  U5      (       d  U R                  S5        g[        R                  R                  UR                  5      nU(       a(  US   R                  S5      nUS   R                  S5      n[        R                  " [        US5      R                  5       5      R                  5       nUR                  SU5        U R                   R#                  UR                  5      (       d   [$        R&                  " SU-   5        U(       a6  X7:w  a1  [$        R*                  " SU/SSS
9  [$        R*                  " S	U/SSS
9  gU(       a7  XB:w  a1  [$        R*                  " SU/SSS
9  [$        R*                  " S	U/SSS
9  ggg! [(         a    [$        R*                  " S	U/SSS
9   Nf = f! [(         a$  nU R                  [-        U5      5         SnAgSnAff = f)z
Up the PPP connection
r   Nz/etc/ppp/peersz(Invalid ppp provider file does not existr   provider_filerb</bin/ps ax | /bin/grep pppd | /bin/grep -v grep | /bin/grep r   stdoutstderr/usr/bin/poff)r!   r   r   joinisfilelog_warnstatemanagerstatemanager_apiget_ifaceobjsnamehashlibsha256openread	hexdigestupdate_configcachelink_existsr   exec_user_command	Exceptionexec_commandlstr)	r   r"   r   
old_configold_providerppp_filesaved_ifaceobjsconfiges	            r   _upppp._up<   s    00<
!	"ww||$4h?H77>>(++HI +;;II(--XO.q1FFzR,Q/DD_U
^^D4$8$=$=$?@JJLF""?F;::))(--88^++,jmu,uv j2##_h$?UYZ##^X$>tTXY,":##_l$CDY]^##^X$>tTXY #; ! ^''(B4X\]^  	"MM#a&!!	"sI   AG; -CG; >G <G; <G; "G85G; 7G88G; ;
H)H$$H)c                      UR                  S5      n[        R                  " SU-   5        [        R                  " SU/SSS9  g! [         a$  nU R                  [        U5      5         SnAgSnAff = f)z
Down the PPP connection
r   r(   r,   Nr)   )r!   r   r<   r>   r=   r/   r?   )r   r"   r   rE   s       r   _down	ppp._downg   sg    	"44Z@H##$bem$mn( ;DQUV 	"MM#a&!!	"s   AA 
A3A..A3Nc                 h    U R                  U5      (       d  g UR                  S5      nU(       a  U/$ g )Nr   )r#   r!   )r   r"   ifacenames_alldevices       r   get_dependent_ifacenamesppp.get_dependent_ifacenamess   s3    $$X....}=8Or   c                     U R                   R                  UR                  5      (       d  g [        R                  Ul        g N)r:   r;   r3   ifaceStatusSUCCESSstatus)r   r"   ifaceobjcurrs      r   _query_checkppp._query_check~   s,    zz%%hmm44)11r   c                 Z    U R                   R                  UR                  5      (       d  g g rQ   )r:   r;   r3   )r   ifaceobjrunnings     r   _query_runningppp._query_running   s%    zz%%o&:&:;; <r   )zpre-updownquery-checkcurrquery-runningc                 6    U R                   R                  5       $ rQ   )_run_opskeys)r   s    r   get_opsppp.get_ops   s    }}!!##r   c                     U R                   R                  U5      nU(       d  g US:w  a  U R                  U5      (       d  g US:X  a
  U" XU5        g U" X5        g )Nr^   r]   )r`   getr#   )r   r"   	operationquery_ifaceobj
extra_args
op_handlers         r   runppp.run   sR    ]]&&y1
'0E0Eh0O0O))t~6t&r    rQ   )__name__
__module____qualname____firstlineno____doc___modinfor   staticmethodr#   rF   rI   rN   rV   rZ   r`   rb   rj   __static_attributes__rl   r   r   r	   r	      s     3 /&Z *+	 I+_!./	
H$R [ [)"V
"	2
 ''	H$'r   r	   )r   r4   ifupdown2.lib.addonr   ifupdown2.ifupdown.statemanagerifupdownr0   ifupdown2.ifupdown.ifaceifupdown2.ifupdown.utilsr   #ifupdown2.ifupdownaddons.modulebaser   ifupdown2.ifupdown.exceptionsr   ImportErrorModuleNotFoundError	lib.addonifupdown.statemanagerifupdown.ifaceifupdown.utilsifupdownaddons.modulebaseifupdown.exceptionsr	   rl   r   r   <module>r      s`    
 7)::*.>@B'% B' 	() 	70 $46	7s   &= +A+*A+