File: //lib/python3.6/site-packages/fail2ban/client/__pycache__/csocket.cpython-36.opt-1.pyc
3
TB(d� � @ 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 j t jt j�| _| jj� | _|dkr0| j|� | jj|� d S )Nr ���)�socketZAF_UNIXZSOCK_STREAM�_CSocket__csockZ
gettimeout�_CSocket__deftout�
settimeoutZconnect)�self�sock�timeout� r �/usr/lib/python3.6/csocket.py�__init__# s
zCSocket.__init__c C s | j � d S )N)�close)r r r r �__del__- s zCSocket.__del__FNc C s@ t tttj|��t�}| jj|� | jjtj � | j
| j||�S )N)r �list�mapr �convertr r �sendr �END�receive)r �msg�nonblockingr �objr r r r 0 s zCSocket.sendc C s | j j|dkr|n| j� d S )Nr r
)r r r
)r r r r r r 7 s zCSocket.settimeoutc C sx | j s
d S y&| j jtjtj � | j jtj� W n tjk
rF Y nX y| j j � W n tjk
rl Y nX d | _ d S )N)
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| jd� |r"| j|� d}xX|jt jd�d kr~| j|�}t|�sXtj dd��|t jkrdP || }|dk r(|dK }q(W t
|�S )
Nr i � r �h zConnection reset by peeri � i��r
)r ZEMPTYZsetblockingr �rfindr Zrecv�lenr r r )r r r r �bufsize�chunkr r r r P s
zCSocket.receiver
)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 �<module> s