CasperSecurity

Current Path : /lib/python3/dist-packages/serial/urlhandler/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/serial/urlhandler/__pycache__/protocol_socket.cpython-310.pyc

o

Ȧ^_�7�@sddlmZddlZddlZddlZddlZddlZzddlZWney/ddl	m
ZYnwddlmZm
Z
mZmZmZmZejejejejd�ZdZGdd�de�Zedkr�ddlZed	�Zej�d
�e��ej�d�e�d�e��ej�d
�e� d���e�!�dSdS)�)�absolute_importN)�
SerialBase�SerialException�to_bytes�PortNotOpenError�SerialTimeoutException�Timeout)�debug�info�warning�error�c@s�eZdZdZdZdd�Zdd�Zdd�Zd	d
�Ze	dd��Z
d*dd�Zdd�Zdd�Z
dd�Zd+dd�Zdd�Zdd�Zdd�Ze	dd ��Ze	d!d"��Ze	d#d$��Ze	d%d&��Zd'd(�Zd)S),�Serialz-Serial port implementation for plain sockets.)�2�K�n����i,iXi�ii`	i�i�%iKi�i�i�c
Cs�d|_|jdurtd��|jrtd��ztj|�|j�td�|_	Wnt
y9}zd|_	td�|j|���d}~ww|j	�d�|�
�d|_|jsN|��|jsU|��|��|��dS)zx        Open port with current settings. This may throw a SerialException
        if the port cannot be opened.
        Nz.Port must be configured before it can be used.zPort is already open.)�timeoutzCould not open port {}: {}FT)�logger�_portr�is_open�socket�create_connection�from_url�portstr�POLL_TIMEOUT�_socket�	Exception�format�setblocking�_reconfigure_port�_dsrdtr�_update_dtr_state�_rtscts�_update_rts_state�reset_input_buffer�reset_output_buffer)�self�msg�r+�C/usr/lib/python3/dist-packages/serial/urlhandler/protocol_socket.py�open3s*
��zSerial.opencCs,|jdur	td��|jr|j�d�dSdS)zz        Set communication parameters on opened port. For the socket://
        protocol all settings are ignored!
        NzCan only operate on open portsz!ignored port configuration change)rrrr
�r)r+r+r,r"Qs

�zSerial._reconfigure_portcCsP|jr&|jrz|j�tj�|j��WnYd|_d|_t�d�dSdS)z
Close portNFg333333�?)rr�shutdownr�	SHUT_RDWR�close�time�sleepr.r+r+r,r1[s�zSerial.closec
Cs�t�|�}|jdkrtd�|j���zHt�|jd���D])\}}|dkr?t�	�t�
d�|_|j�t
|d�|j�d�qtd�|���d|jkrTd	ksYtd
��td
��Wntym}ztd�|���d}~ww|j|jfS)
z(extract host and port from an URL stringrzexpected a string in the form "socket://<host>:<port>[?logging={debug|info|warning|error}]": not starting with socket:// ({!r})T�loggingzpySerial.socketrzenabled loggingzunknown option: {!r}izport not in range 0...65535z_expected a string in the form "socket://<host>:<port>[?logging={debug|info|warning|error}]": {}N)�urlparse�urlsplit�schemerr �parse_qs�query�itemsr4�basicConfig�	getLoggerr�setLevel�
LOGGER_LEVELSr	�
ValueError�port�hostname)r)�url�parts�option�values�er+r+r,rjs6

������zSerial.from_urlcCs.|jst��t�|jgggd�\}}}t|�S)z9Return the number of bytes currently in the input buffer.r)rr�selectr�len)r)�lr�lw�lxr+r+r,�
in_waiting�szSerial.in_waiting�c
CsR|jst��t�}t|j�}t|�|kr�z-t�|jggg|���\}}}|s+Wt|�S|j�	|t|��}|s;t
d��|�|�WnTtyi}z|j
t
jt
jt
jt
jt
jfvr_t
d�|���WYd}~n1d}~wtjtjfy�}z|dt
jt
jt
jt
jt
jfvr�t
d�|���WYd}~nd}~ww|��r�	t|�St|�|kst|�S)z�        Read size bytes from the serial port. If a timeout is set it may
        return less characters as requested. With no timeout it will block
        until the requested number of bytes is read.
        zsocket disconnected�read failed: {}Nr)rr�	bytearrayr�_timeoutrHrGr�	time_left�recvr�extend�OSError�errno�EAGAIN�EALREADY�EWOULDBLOCK�EINPROGRESS�EINTRr rr�expired�bytes)r)�size�readr�ready�_�bufrFr+r+r,r^�s<
��� ����zSerial.readc

Cs�|jst��t|�}t|�}}t|j�}|dkr�zT|j�|�}|jr&|WS|j	sG|�
�r1td��t�g|jgg|�
��\}}}|sFtd��n|�
�dusOJ�t�g|jggd�\}}}|sbtd��||d�}||8}WnXtyu�ty�}	z|	jtjtjtjtjtjfvr�td�|	���WYd}	~	n.d}	~	wtjy�}	z|	dtjtjtjtjtjfvr�td�|	���WYd}	~	nd}	~	ww|js�|�
�r�td��|dks|t|�S)z�        Output the given byte string over the serial port. Can block if the
        connection is blocked. May raise SerialException if the connection is
        closed.
        rz
Write timeoutNzwrite failed (select)zwrite failed: {})rrrrHr�_write_timeoutr�send�is_non_blocking�is_infiniter[rrGrQrrTrUrVrWrXrYrZr r)
r)�data�d�tx_len�lengthr�nr`r_rFr+r+r,�write�sP
��� ����'zSerial.writec
Cs�|jst��d}|rzt�|jgggd�\}}}z
|r |j�d�}WnTtyI}z|jtjtjtj	tj
tjfvr?td�
|���WYd}~n1d}~wtjtjfyu}z|dtjtjtj	tj
tjfvrktd�
|���WYd}~nd}~ww|s
dSdS)z9Clear input buffer, discarding all that is in the buffer.TrirNN)rrrGrrRrTrUrVrWrXrYrZrr rr)r)r_r`rFr+r+r,r'�s*��� ����zSerial.reset_input_buffercCs&|jst��|jr|j�d�dSdS)zs        Clear output buffer, aborting the current output and
        discarding all that is in the buffer.
        zignored reset_output_bufferN�rrrr
r.r+r+r,r(s
�zSerial.reset_output_buffer��?cCs,|jst��|jr|j�d�|��dSdS)za        Send break condition. Timed, returns to idle state after given
        duration.
        zignored send_break({!r})N)rrrr
r )r)�durationr+r+r,�
send_breaks
�zSerial.send_breakcC�"|jr|j�d�|j��dSdS)zJSet break: Controls TXD. When active, to transmitting is
        possible.z!ignored _update_break_state({!r})N)rr
r �_break_stater.r+r+r,�_update_break_states�zSerial._update_break_statecCrp)z)Set terminal status line: Request To Sendzignored _update_rts_state({!r})N)rr
r �
_rts_stater.r+r+r,r&%��zSerial._update_rts_statecCrp)z-Set terminal status line: Data Terminal Readyzignored _update_dtr_state({!r})N)rr
r �
_dtr_stater.r+r+r,r$*rtzSerial._update_dtr_statecC�"|jst��|jr|j�d�dS)z(Read terminal status line: Clear To Sendzreturning dummy for ctsTrlr.r+r+r,�cts/�
z
Serial.ctscCrv)z)Read terminal status line: Data Set Readyzreturning dummy for dsrTrlr.r+r+r,�dsr8rxz
Serial.dsrcCrv)z)Read terminal status line: Ring Indicatorzreturning dummy for riFrlr.r+r+r,�riArxz	Serial.ricCrv)z)Read terminal status line: Carrier Detectzreturning dummy for cd)Trlr.r+r+r,�cdJrxz	Serial.cdcCs
|j��S)z@Get the file handle of the underlying socket for use with select)r�filenor.r+r+r,r|Vs
z
Serial.filenoN)rM)rm)�__name__�
__module__�__qualname__�__doc__�	BAUDRATESr-r"r1r�propertyrLr^rkr'r(rorrr&r$rwryrzr{r|r+r+r+r,r-s4


)5






r�__main__zsocket://localhost:7000z{}
z	write...
shello
z	read: {}
)"�
__future__rrUr4rGrr2r5�ImportError�urllib.parse�parse�serial.serialutilrrrrrr�DEBUG�INFO�WARNING�ERRORr>rrr}�sys�s�stdoutrkr �flushr^r1r+r+r+r,�<module>s>� �2
�
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY