
    >OOfT                        d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 dZ
dZdZd	Zd
ZdZdZdZdZdae
eeeeegZdadadadZ	 ddlmZ d Zd Zd Zd Zd%dZ d Z!d Z"d Z#d Z$d  Z%d! Z&d" Z'd# Z( ed$      Z)e)jU                   e               e"e        e&e
        e d       y# e$ r ddlmZ  G d de      ZY ww xY w)&
    )	getLoggerDEBUG)deepcopy)pformat   )LDAPMessage
         (   2   )simplecredentialsserversaslcreds)r   passwordsasl_credentials	saslcredsserver_creds)userpassword
unicodepwdNi   ascii)NullHandler)Handlerc                       e Zd Zd Zd Zd Zy)r   c                      y N selfrecords     P/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/ldap3/utils/log.pyhandlezNullHandler.handle:           c                      y r   r   r   s     r"   emitzNullHandler.emit=   r$   r%   c                     d | _         y r   )lock)r    s    r"   
createLockzNullHandler.createLock@   s	    DIr%   N)__name__
__module____qualname__r#   r'   r*   r   r%   r"   r   r   9   s    			r%   r   c                 :   t        | t              s| S 	 t        |       } | j	                         D ]X  }t        | |   t              rt        | |         | |<   (|j                         t        v s?| |   sEdt        | |         z  | |<   Z | S # t        $ r | cY S w xY w)Nz*<stripped %d characters of sensitive data>)	
isinstancedictr   	Exceptionkeys_strip_sensitive_data_from_dictlower_sensitive_argslen)dks     r"   r3   r3   D   s    aQK VVX LadD!21Q48AaDWWY/)ad?#ad)KAaD	L H  s   B BBc                     | t         k(  ry| t        k(  ry| t        k(  ry| t        k(  ry| t        k(  ry| t
        k(  ryt        d      )NOFFERRORBASICPROTOCOLNETWORKEXTENDEDzunknown detail level)r:   r;   r<   r=   r>   r?   
ValueError)
level_names    r"   get_detail_level_namerB   U   sP    S	u		u		x		w		x	
+
,,r%   c           	         | t         k  rt        r4t        |D cg c]  }t        |t              rt        |      n|! c}      }t        t        ur9t        |       dz   ||z  z   j                  t        d      }|j                         }n)	 t        |       dz   ||z  z   j                  t        d      }t        |      t        kD  r9t        j!                  t"        |d t         dt        |      t        z
  fz  z          y t        j!                  t"        |       y y c c}w # t        $ r+ t        |       dz   ||z  z   j                  t        d      }Y w xY w)N:backslashreplacereplacez. <removed %d remaining bytes in this log line>)_detail_level_hide_sensitive_datatupler/   r0   r3   strbytesrB   encode_logging_encodingdecoder1   r6   _max_line_lengthloggerlog_logging_level)detailmessageargsargencoded_messages        r"   rQ   rQ   e   sa   lpqeh*SRVBW9#>]``qrDe4V<sBWt^S[[\m  pB  CO-446O~#8#@3#FSW#W"_"_`qs|"} "22JJ~7H8H'IL|  AD  ET  AU  Xh  Ah  @k  Mk  (k  lJJ~7! q  ~#8#@3#FSW#W"_"_`qs|"}~s   $D(D 1EEc                 J    | t         k  rt        j                  t              ryyNTF)rG   rP   isEnabledForrR   rS   s    r"   log_enabledr\   y   s    ~.r%   Tc                 r    | rda nda t        t              r!t        t        dt	        t               z          y y )NTFzhide sensitive data set to )rH   r\   r;   rQ   rJ   )hides    r"   #set_library_log_hide_sensitive_datar_      s4    #$5E037K3LLM r%   c                      t         rdS dS rY   )rH   r   r%   r"   #get_library_log_hide_sensitive_datara      s    '42U2r%   c                 ~    t        | t              r| ay t        t              rt        t        d|        t        d      )Nz*invalid library log activation level <%s> z$invalid library log activation level)r/   intrR   r\   r;   rQ   r@   )logging_levels    r"    set_library_log_activation_levelre      s2    -%&uC]S?@@r%   c                      t         S r   )rR   r   r%   r"    get_library_log_activation_lavelrg      s    r%   c                 ~    t        | t              r| ay t        t              rt        t        d|        t        d      )Nz!invalid log max line length <%s> z#invalid library log max line length)r/   rc   rO   r\   r;   rQ   r@   )lengths    r"   set_library_log_max_line_lengthrj      s3    &#!u:FC>??r%   c                      t         S r   )rO   r   r%   r"   get_library_log_max_line_lengthrl      s    r%   c                     | t         v r3| at        t              r!t	        t        dt        t              z          y y t        t              rt	        t        d|        t        d      )Nzdetail level set to z&unable to set log detail level to <%s>z invalid library log detail level)DETAIL_LEVELSrG   r\   r;   rQ   rB   r@   r[   s    r"   set_library_log_detail_levelro      sU    u-0Em0TTU  u?H;<<r%   c                      t         S r   )rG   r   r%   r"   get_library_log_detail_levelrq      s    r%   c                    t        | t              r!	 | j                         j                  d      }nt        |       j                  d      }d}|D ]  }|st        r|j                         j                         j                  t              r|j                  d      \  }}}|j                  d      r|j                  d      s"|j                  d      r0|j                  d      r|d|z   |z   d	t        |      d
z
  fz  z   z  }|d|z   |z   d	t        |      z  z   z  }|d|z   |z   z  } |S # t        $ r}dt        |      g}Y d }~d }~ww xY w)Nr   zpyasn1 exception =zb''zb""z+=<stripped %d characters of sensitive data>   )r/   r	   prettyPrintsplitr1   rJ   r   rH   stripr4   
startswith_sensitive_lines	partitionendswithr6   )	rT   prefix	formattedeprefixedlinetag_datas	            r"   format_ldap_messager      sK   ';'	5++-33D9I G$**40	H 	1#

(:(:(<(G(GHX(Y#~~c2Q??4(T]]3-?4??SWCX]a]j]jkn]ov 36cgjkogpstgtfw6w wwHv 36cfijnfo6o ooHD6MD00	1 O!  	5+SV4I	5s   D/ /	E8E

Eldap3)T)+__doc__loggingr   r   copyr   pprintr   protocol.rfc4511r	   r:   r;   r<   r=   r>   r?   r|   r5   _sensitive_attrsrH   rn   rO   rR   rG   rM   r   ImportErrorr   r3   rB   rQ   r\   r_   ra   re   rg   rj   rl   ro   rq   r   rP   
addHandlerr   r%   r"   <module>r      s  2 %   * 


? Y1  eUHgx@  #"- 8(N3A@	=. 
7	   +-   ! ' S ! #D )E  g s   B' 'C ?C 