
    	hu                        S SK r S SKrS SKrS SKr\R                  R                  5        V Vs0 s H  u  pU SS S:X  d  M  XSS _M     snn r\R                  " SS S S5      rS r	S r
S rS rS rS	 rS
rS r\S:X  a  \" 5         ggs  snn f )    N   RASCS_c                    [         R                  US5      n[        SXRU4-  5        U[        R                  4;   nU(       a  [
        R                  " [        5        US:w  d  [        U5      [        R                  :X  aH  [        S[        R                  " U5      -  5        [        U 5        [
        R                  " [        5        g g )NzUnknown state?z&Status is %s (%04lx), error code is %dr   zDetected call failure: %s)stateMapgetprintwin32rasRASCS_Connected
win32eventSetEventcallbackEventintRASCS_DisconnectedGetErrorStringHangUp)hrasmsgstateerrorexterror	stateNamefinisheds          fC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\win32/Demos/rastest.pyCallbackr      s    U$45I	
2i5N
NO1122HM*zSZ8#>#>>)H,C,CE,JJKtM*	 ?    c                      [        S5        [        R                  " 5        H  u  n [        SU 5        M     [        S5        [        R                  " 5        H  n[        SU5        M     g )NzAll phone-book entries: zCurrent Connections:)r   r	   EnumEntriesEnumConnections)namecons     r   ShowConnectionsr"   "   sO    	
#$'')c4 *	
 !'')c3 *r   c                      [         R                  " SS U 5        g ! [         R                   a%  nUR                  u  p#n[	        SU5         S nAg S nAff = f)Nr   z!Can not edit/find the RAS entry -)r	   EditPhonebookEntryr   argsr   )	entryNamexxx_todo_changemercfunctionr   s        r   	EditEntryr*   +   sK    8##AtY7>> 8/44s13778s    AAAc                 V     [         R                  " U 5        g !   [        S5         g = f)Nz9Tried to hang up gracefully on error, but didn't work....)r	   r   r   )r   s    r   r   r   3   s-    K KIJs    (c           
         U(       a!  [         n[        R                  " [        5        OS n [        R
                  " S U 5      u  p4[        R                  " S S U SSUS   US   S4U5      u  pVU(       d4  US:w  a.  [        S[        R                  " U5      5        [        U5      nXV4$ U(       a}  [        R                  " [        S5      [        R                  :w  aP  [        S5         [        R                  " U5      n[        US   5      [        R                  :X  a  [        U5      nXV4$ XV4$ !   [        U5      n XV4$ = f!   [        SU -  5         WW4$ = f)	N       r   z"Could not dial the RAS connection:i`  z,Gave up waiting for the process to complete!zCouldn't find DUN entry: %s)r   r   
ResetEventr   r	   GetEntryDialParamsDialr   r   r   WaitForSingleObjectWAIT_OBJECT_0GetConnectStatusr   r   )r&   bUseCallbacktheCallbackdpbr   r(   css           r   Connectr;   <   sC   m,(++D)< ==$BBqE2a5"={

 a68O8OPR8ST$<D" 8O ..}eD''( @A(..t4
 r!u:!<!<<!$<D8O48O$d| 8O79+i784 8Os   E 'D. .D?Ec                     U R                  5       n[        R                  " 5        H>  u  p#pEUR                  5       U:X  d  M  [        R                  " U5        [	        SU 5          g    [	        SW5        g )NzDisconnected fromz$Could not find an open connection to)lowerr	   r   r   r   )rasEntryr    hconr&   devNamedevTypes         r   
DisconnectrB   d   s]    >>D-5-E-E-G)??$OOD!%x0	 .H 	4i@r   a6  
Usage: %s [-s] [-l] [-c connection] [-d connection]
-l : List phone-book entries and current connections.
-s : Show status while connecting/disconnecting (uses callbacks)
-c : Connect to the specified phonebook name.
-d : Disconnect from the specified phonebook name.
-e : Edit the specified phonebook entry.
c                     SS K n  U R                  [        R                  SS  S5      u  pSnU(       d  U(       dA  [	        [
        [        R                  R                  [        R                  S   5      -  5        g U Hj  u  pVUS:X  a  SnUS:X  a
  [        5         US:X  a#  [        Xd5      u  pxUb  [	        SUS S	US
 35        US:X  a  [        U5        US:X  d  M_  [        U5        Ml     g ! U R                   aU  n[	        U5        [	        [
        [        R                  R                  [        R                  S   5      -  5         S nAg S nAff = f)Nr      zslc:d:e:z-sz-lz-czhras: 0x8xz, rc: 0x04xz-dz-e)getoptsysargvr   r   usageospathbasenamer"   r;   rB   r*   )	rG   optsr%   why	bCallbackoptvalr   r(   s	            r   mainrS   z   s&   ]]388AB<<
 I4  HHQK	
 	$;I$;$;s.HDb	"S:;$;sO$;cN / << 
c
  HHQK	
 	
s   %C- -E=AEE__main__)rK   rH   r   r	   __dict__itemsr   CreateEventr   r   r"   r*   r   r;   rB   rJ   rS   __name__)r    rR   s   00r   <module>rY      s    
 
  
 $,#4#4#:#:#<#<idRaH@TMCabM#<
 &&tQ48+8%P	A	(V zF ss   B		B	