
    h                     
   S SK r S SKrS SKrS SKrS SKrS SKJrJrJrJ	r	   " S S\
5      r " S S\5      r " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      rSS jr\" \" 5       5      r\" S \\R*                  4\\R,                  4\\R.                  4\\R0                  4\\R4                  4\\R6                  4\\R:                  4\\R>                  4\ \RB                  4\"\RF                  4\$\RJ                  4\&\RN                  4\(\RR                  4\*\RV                  4\,\RZ                  4\.\R^                  4\.\R`                  4\1\Rd                  4\3\Rh                  44 5       5      r5S\6S\
4S jr7g)    N)ClassVarIterableMatchPatternc                   J   ^  \ rS rSr% \\   \S'   SSS\SS4U 4S jjrS	r	U =r
$ )
SshError   PATTERNmatchzMatch | NonestderrreturnNc                 X   > [         TU ]  Ub  UR                  S5      OU5        X l        g )Nr   )super__init__groupr   selfr   r   	__class__s      B/usr/lib/python3/dist-packages/cockpit/_vendor/ferny/ssh_errors.pyr   SshError.__init__   s$    5+<Q&I    )r   )__name__
__module____qualname____firstlineno__r   r   __annotations__strr   __static_attributes____classcell__r   s   @r   r   r      s-    gn c d  r   r   c                   r   ^  \ rS rSr\R
                  " S\R                  5      rS\S\	SS4U 4S jjr
SrU =r$ )	SshAuthenticationError"   z+^([^:]+): Permission denied \(([^()]+)\)\.$r   r   r   Nc                    > [         TU ]  X5        UR                  S5      U l        UR                  S5      R	                  S5      U l        UR                  S5      U l        g )N      ,r   )r   r   r   destinationsplitmethodsmessager   s      r   r   SshAuthenticationError.__init__%   sI    ' ;;q>{{1~++C0{{1~r   )r(   r+   r*   )r   r   r   r   recompileMr
   r   r   r   r   r   r    s   @r   r"   r"   "   s7    jjGNG&e &S &T & &r   r"   c                   N    \ rS rSr\R
                  " S\R                  5      rSrg)SshInvalidHostnameError,   z%^hostname contains invalid characters N	r   r   r   r   r-   r.   Ir
   r   r3   r   r   r1   r1   ,   s    jjA244HGr   r1   c                   N    \ rS rSr\R
                  " S\R                  5      rSrg)SshHostKeyError1   z^Host key verification failed.$r3   N)	r   r   r   r   r-   r.   r/   r
   r   r3   r   r   r7   r7   1   s    jj;RTTBGr   r7   c                   h    \ rS rSr\R
                  " S\R                  \R                  -  5      rSr	g)SshUnknownHostKeyError6   z8^No .* host key is known.*Host key verification failed.$r3   N)
r   r   r   r   r-   r.   Sr/   r
   r   r3   r   r   r:   r:   6   s&    jjTVXVZVZ]_]a]aVabGr   r:   c                   N    \ rS rSr\R
                  " S\R                  5      rSrg)SshChangedHostKeyError:   z/warning.*remote host identification has changedr3   Nr4   r3   r   r   r>   r>   :   s    jjKRTTRGr   r>   r   c               #   :  #    [         R                  " S 5      n [         R                  U R                  l        [        [        5       HO  nUR                  S5      (       d  M  [        [        U5      nU R                  U5      R                  S5      U4v   MQ     g 7f)NEAI_zutf-8)
ctypesCDLLc_char_pgai_strerrorrestypedirsocket
startswithgetattrdecode)libckeyerrnums      r   make_gaierror_maprO   @   so     ;;tD &D6{>>&!!VS)F##F+227;VCC s   AB"9Bc              #   ,   #    U  H
  u  pX!4v   M     g 7f)Nr3   ).0clsrN   s      r   	<genexpr>rS   S   s       >kcVM >s   r   c                 2   U R                  SS5      n [        [        [        [        [
        4 H+  nUR                  R                  U 5      nUc  M#  U" X 5      s  $    U R                  S5      u  p4nU(       a  U(       a  UR                  5       nU[        ;   a  [        U   n[        R                  " Xp5      $ [        R                   HA  n[        R                   " U5      U:X  d  M  ["        R%                  U[&        5      nU" Xp5      s  $    [)        S U 5      $ )Nz

:)replacer1   r"   r>   r:   r7   r
   search
rpartitionstripgaierror_maprH   gaierrorerrno	errorcodeosstrerroroserror_subclass_mapgetOSErrorr   )	r   ssh_clsr   beforecolonafterpotential_strerrorrN   os_clss	            r   get_exception_for_ssh_stderrrj   j   s    ^^FD)F ,-C*,BOU&&v.5))	U ",,S1F5"[[] -!"45F??622 ooF{{6"&88-11&'Bf-- & D&!!r   )r   zIterable[tuple[str, int]])8rB   r]   r_   r-   rH   typingr   r   r   r   	Exceptionr   r"   r1   r7   r:   r>   rO   dictr[   BlockingIOErrorEAGAINEALREADYEINPROGRESSEWOULDBLOCKBrokenPipeErrorEPIPE	ESHUTDOWNChildProcessErrorECHILDConnectionAbortedErrorECONNABORTEDConnectionRefusedErrorECONNREFUSEDConnectionResetError
ECONNRESETFileExistsErrorEEXISTFileNotFoundErrorENOENTIsADirectoryErrorEISDIRNotADirectoryErrorENOTDIRInterruptedErrorEINTRPermissionErrorEACCESEPERMProcessLookupErrorESRCHTimeoutError	ETIMEDOUTra   r   rj   r3   r   r   <module>r      s  $   	 	  5 5y &X &Ih I
Ch C
c_ cS_ SD %'(  ell#enn%e''(e''(ekk"eoo&%U//0U//05++,ell#%%'u{{#ell#ekk"%5??#'>   ." " "r   