a
=Æ*f³ ã @ sN d Z dZdZddlmZmZmZ ddlmZ ddl Z ddl
Z
G dd „ d ƒZdS )
z
Cyril Jaquierz Copyright (c) 2004 Cyril JaquierZGPLé )ÚdumpsÚloadsÚHIGHEST_PROTOCOLé )ÚCSPROTONc @ sR e Zd Zddd„Zdd„ Zdd d
„Zdd„ Zd
d„ Zedd„ ƒZ eddd„ƒZ
dS )ÚCSocketú/var/run/fail2ban/fail2ban.sockéÿÿÿÿc C s@ t t jt j¡| _| j ¡ | _|dkr0| |¡ | j |¡ d S ©Nr )ÚsocketZAF_UNIXZSOCK_STREAMÚ_CSocket__csockZ
gettimeoutÚ_CSocket__deftoutÚ
settimeoutZconnect)ÚselfÚsockÚtimeout© r ú;/usr/lib/python3.9/site-packages/fail2ban/client/csocket.pyÚ__init__# s
zCSocket.__init__c C s | ¡ d S ©N)Úclose©r r r r Ú__del__- s zCSocket.__del__FNc C s@ t tttj|ƒƒtƒ}| j |¡ | j tj ¡ |
| j||¡S r )r ÚlistÚmapr Úconvertr r Úsendr ÚENDÚreceive)r ÚmsgÚnonblockingr Úobjr r r r 0 s zCSocket.sendc C s | j |dkr|n| j¡ d S r
)r r r
)r r r r r r 7 s zCSocket.settimeoutc C st | j s
d S z&| j tjtj ¡ | j tj¡ W n tjyD Y n0 z| j ¡ W n tjyh Y n0 d | _ d S r )
r Zsendallr ZCLOSEr Zshutdownr Z SHUT_RDWRÚerrorr r r r r r : s z
CSocket.closec C s( t | tttttttfƒr| S t| ƒS dS )z6Convert every "unexpected" member of message to stringN)Ú
isinstanceÚstrÚboolÚintÚfloatr ÚdictÚset)Úmr r r r H s zCSocket.convertc C s„ t j}|r| d¡ |r"| |¡ d}| t jd¡dkr|| |¡}t|ƒsVt dd¡‚|t jkrbq||| }|dk r&|dK }q&t
|ƒS ) Nr i iàÿÿÿr éh zConnection reset by peeri € é )r ZEMPTYZsetblockingr Úrfindr ZrecvÚlenr r" r )r r r r ÚbufsizeÚchunkr r r r P s
zCSocket.receive)r r )FN)FN)Ú__name__Ú
__module__Ú__qualname__r r r r r Ústaticmethodr r r r r r r ! s
r )Ú
__author__Z
__copyright__Z__license__Úpickler r r Zprotocolr r Úsysr r r r r Ú