a „oeÿã@sºddlZddlZddlZiZeej ¡ƒD](\ZZedd…dkr*edd…ee<q*ddl Z e   dddd¡Z dd„Z dd„Z dd „Zd d „Zd d „Zdd„ZdZdd„Zedkr¶eƒdS)éNéZRASCS_cCsvt |d¡}td|||fƒ|tjfv}|r8t t¡|dksNt|ƒtj krrtdt  |¡ƒt |ƒt t¡dS)NzUnknown state?z&Status is %s (%04lx), error code is %drzDetected call failure: %s) ÚstateMapÚgetÚprintÚwin32rasZRASCS_ConnectedÚ win32eventZSetEventÚ callbackEventÚintÚRASCS_DisconnectedÚGetErrorStringÚHangUp)ÚhrasÚmsgÚstateÚerrorZexterrorZ stateNameÚfinished©rú4C:\Program Files\Certbot\pkgs\win32\Demos\rastest.pyÚCallbacks   rcCsFtdƒt ¡D]\}td|ƒqtdƒt ¡D]}td|ƒq2dS)NzAll phone-book entries:ú zCurrent Connections:)rrZ EnumEntriesÚEnumConnections)ÚnameZconrrrÚShowConnections$s   rc CsTzt dd|¡Wn<tjyN}z"|j\}}}td|ƒWYd}~n d}~00dS)Nrz!Can not edit/find the RAS entry -)rZEditPhonebookEntryrÚargsr)Ú entryNameZxxx_todo_changemeÚrcÚfunctionrrrrÚ EditEntry-s  rcCs(zt |¡WntdƒYn0dS)Nz9Tried to hang up gracefully on error, but didn't work....)rr r)r rrrr 5s r c Csø|rt}t t¡nd}zt d|¡\}}Wntd|ƒYn¬0t dd|dd|d|ddf|¡\}}|s”|dkr”tdt |¡ƒt |ƒ}n\|rðt  td¡tj krðtdƒzt  |¡}Wnt |ƒ}Yn0t |dƒtjkrðt |ƒ}||fS) NzCouldn't find DUN entry: %sÚéérz"Could not dial the RAS connection:i`êz,Gave up waiting for the process to complete!)rrZ ResetEventrrZGetEntryDialParamsrZDialr r ZWaitForSingleObjectZ WAIT_OBJECT_0ZGetConnectStatusr r )rZ bUseCallbackZ theCallbackZdpÚbr rÚcsrrrÚConnect>s8 ÿ  ÿ ÿþr#cCsP| ¡}t ¡D]0\}}}}| ¡|krt |¡td|ƒqLqtd|ƒdS)NzDisconnected fromz$Could not find an open connection to)Úlowerrrr r)ZrasEntryrZhconrZdevNameZdevTyperrrÚ Disconnectfs   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 Csddl}z| tjdd…d¡\}}WnJ|jyp}z0t|ƒtttj tjd¡ƒWYd}~dSd}~00d}|s~|sœtttj tjd¡ƒdS|D]r\}}|dkr´d}|dkrÂt ƒ|dkrðt ||ƒ\}}|dkrðtd||fƒ|dk�rt |ƒ|d kr t |ƒq dS) Nrézslc:d:e:z-sz-lz-czhras: 0x%8lx, rc: 0x%04xz-dz-e) ÚgetoptÚsysÚargvrrÚusageÚosÚpathÚbasenamerr#r%r) r'ZoptsrÚwhyZ bCallbackÚoptÚvalr rrrrÚmain|sHÿþÿÿþÿ  r1Ú__main__)r+r(rrÚlistÚ__dict__Úitemsrr0rZ CreateEventrrrrr r#r%r*r1Ú__name__rrrrÚs$  (  +