a
    kÄ#d�  ã                   @   sØ  d Z ddlZddlZddlZddlZddlmZ ddlm  m	Z	 ddlm
Z
 ddlmZmZmZ G dd„ deƒZG dd	„ d	eƒZG d
d„ deƒZG dd„ dejƒZG dd„ dejƒZerâzddlZe ¡  W n eyà   Y n0 e d¡Zejejk�re ej¡ e  ¡ Z!e! "edƒ¡ e #e!¡ e d¡Z$e$ %eƒ ¡ e d¡Z&e& ej'¡ e d¡Z(e	j)�rÌzRe *¡ �& e +d¡ ddl,m-Z- W d  ƒ n1 �sœ0    Y  ej.de-d� W n e�yÊ   Y n0 dd„ Z/dS )z.
Logging subsystem and basic exception class.
é    N)ÚWINDOWS)Ú	LogRecord)ÚAnyÚDictÚTuplec                   @   s   e Zd ZdS )ÚScapy_ExceptionN©Ú__name__Ú
__module__Ú__qualname__© r   r   úB/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/error.pyr       s   r   c                   @   s   e Zd ZdS )ÚScapyInvalidPlatformExceptionNr   r   r   r   r   r   $   s   r   c                   @   s   e Zd ZdS )ÚScapyNoDstMacExceptionNr   r   r   r   r   r   (   s   r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚScapyFreqFilterc                 C   s   t j | ¡ i | _d S )N)ÚloggingÚFilterÚ__init__Úwarning_table)Úselfr   r   r   r   -   s    zScapyFreqFilter.__init__c                 C   sÄ   ddl m} |jtjkrdS |j}|dkrÀt ¡ }d}|D ]\}}}}|dkrR qX|}q:| j 	|d¡\}	}
t
 
¡ }||	 |krˆ|}	d}
n*|
dk r®|
d7 }
|
dkr²d|j |_nd	S |	|
f| j|< dS )
Nr   ©ÚconfTÚwarning)r   r   é   é   zmore F)Úscapy.configr   Úlevelnor   ÚINFOZwarning_thresholdÚ	tracebackÚextract_stackr   ÚgetÚtimeÚmsg)r   Úrecordr   ÚwtZstkZcallerÚ_ÚlÚnÚtmÚnbZltmr   r   r   Úfilter2   s.    zScapyFreqFilter.filterN)r	   r
   r   r   r*   r   r   r   r   r   ,   s   r   c                       s0   e Zd ZdZddddddœZ‡ fdd„Z‡  ZS )	ÚScapyColoredFormatterz4A subclass of logging.Formatter that handles colors.Úresetzbold+yellowzbold+redzbold+white+bg_red)ÚDEBUGr   ÚWARNINGÚERRORÚCRITICALc                    s6   t t| ƒ |¡}ddlm} |j || j|j ¡}|S )Nr   r   )Úsuperr+   Úformatr   r   Zcolor_themeÚlevels_coloredÚ	levelname)r   r#   Úmessager   ©Ú	__class__r   r   r2   Z   s    
þzScapyColoredFormatter.format)r	   r
   r   Ú__doc__r3   r2   Ú__classcell__r   r   r6   r   r+   P   s   ûr+   Zscapyz%(levelname)s: %(message)szscapy.runtimezscapy.interactivezscapy.loadingÚignore)ÚCryptographyDeprecationWarning)Úcategoryc                 O   s   t j| g|¢R i |¤Ž dS )z*
    Prints a warning during runtime.
    N)Úlog_runtimer   )ÚxÚargsZkargsr   r   r   r   ‘   s    r   )0r8   r   r   r!   ÚwarningsZscapy.constsr   Zscapy.libs.sixZlibsÚsixr   Zscapy.compatr   r   r   Ú	Exceptionr   r   r   r   r   Ú	Formatterr+   ZcoloramaÚinitÚImportErrorÚ	getLoggerZ	log_scapyÚlevelÚNOTSETÚsetLevelr.   ÚStreamHandlerZ_handlerÚsetFormatterÚ
addHandlerr=   Ú	addFilterZlog_interactiver-   Zlog_loadingÚPY2Úcatch_warningsÚsimplefilterZcryptography.utilsr;   Úfilterwarningsr   r   r   r   r   Ú<module>   sZ   	$
ÿÿ





,ÿ
