o
    àý°js  ã                   @   sV   d dl Z d dlZd dlmZ e ¡ Zdd„ Zdd„ Zedd„ ƒZG d	d
„ d
e j	ƒZ
dS )é    N)Úcontextmanagerc                   C   s   t tdd ƒS ©NÚidentity)ÚgetattrÚ_tlocal© r   r   ú¢/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/examples/ntlmrelayx/utils/identity_log.pyÚ_get_identity	   s   r	   c                 C   s   t td| ƒ d S r   )Úsetattrr   )r   r   r   r   Úset_identity   s   r   c                 c   s0   � t ƒ }zt| ƒ d V  W t|ƒ d S t|ƒ w )N)r	   r   )r   Úprevr   r   r   Úidentity_context   s   €r   c                   @   s   e Zd ZdZdd„ ZdS )ÚIdentityFilterzKInjects .identity into every LogRecord so %(identity)s works in formatters.c                 C   s"   t ƒ }|rd| |_dS d|_dS )Nz%s -> Ú T)r	   r   )ÚselfÚrecordr   r   r   r   Úfilter   s
   ÿzIdentityFilter.filterN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r      s    r   )ÚloggingÚ	threadingÚ
contextlibr   Úlocalr   r	   r   r   ÚFilterr   r   r   r   r   Ú<module>   s   
	