HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/site-packages/mysql/connector/__pycache__/network.cpython-311.pyc
�

�nc R��x�dZddlZddlZddlZddlZddlZddlmZ	ddlZej	ej
ejd�Ze
ed��rejnejed<e
ed��oejZn
#e$rdZYnwxYwd	d
lmZd	dlmZmZmZd	dlmZd
�Zd�ZGd�d��ZGd�de��ZGd�de��ZdS)zGModule implementing low-level socket communication with MySQL servers.
�N)�deque)�TLSv1�TLSv1.1�TLSv1.2�PROTOCOL_TLS�TLSv1.3�HAS_TLSv1_3F�)�MAX_PACKET_LENGTH)�InterfaceError�NotSupportedError�OperationalError)�init_bytearrayc�P�|jst|��S|j�d|j��S)z_Reformat the IOError error message

    This function reformats the IOError error message.
    � )�errno�str�strerror)�errs �9D:\Python311\Lib\site-packages\mysql/connector/network.py�_strioerrorr@s1��
�9���3�x�x���i�(�(�#�,�(�(�(�c��g}t|��}t}||krZ|�dtjd|��z|d|�z��||d�}t|��}|dz}||k�Z|�tjd|��dd�tjd|��z|z��|S)z0Prepare a packet for sending to the MySQL server�����<BNr
�<Ir�)�lenr�append�struct�pack)�buf�pktnr�pkts�pllen�	maxpktlens     r�_prepare_packetsr'Js���
�D���H�H�E�!�I�
�)�
�����O�f�k�$��&>�&>�>��Z�i�Z��P�Q�Q�Q��)�*�*�o���C������	��	�)�
��
	�K�K���D�%�(�(��1��-���D�%�0H�0H�H�3�N�O�O�O��Krc��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zdd�ZeZ
dd�Zd
�ZeZd�Zd�Zd�Z				dd�Zd
S)�BaseMySQLSocketaBase class for MySQL socket communication

    This class should not be used directly but overloaded, changing the
    at least the open_connection()-method. Examples of subclasses are
      mysql.connector.network.MySQLTCPSocket
      mysql.connector.network.MySQLUnixSocket
    c��d|_d|_d|_d|_t	��|_d|_d|_dS)N���i )�sock�_connection_timeout�_packet_number�_compressed_packet_numberr�
_packet_queue�server_host�recvsize��selfs r�__init__zBaseMySQLSocket.__init__as@����	�#'�� � ���)+��&�"�W�W��������
�
�
rc�R�|jdz|_|jdkrd|_|jS)zIncrements the packet numberr
�r)r.r3s r�next_packet_numberz"BaseMySQLSocket.next_packet_numberjs3��"�1�A�5������$�	$�"#�D���"�"rc�R�|jdz|_|jdkrd|_|jS)z'Increments the compressed packet numberr
r7r)r/r3s r�next_compressed_packet_numberz-BaseMySQLSocket.next_compressed_packet_numberqs3��)-�)G�!�)K��&��)�C�/�	/�-.�D�*��-�-rc��t�)zOpen the socket��NotImplementedErrorr3s r�open_connectionzBaseMySQLSocket.open_connectionx���!�!rc��t�)zGet the location of the socketr<r3s r�get_addresszBaseMySQLSocket.get_address|r?rc��	|j�tj��|j���|`dS#ttf$rYdSwxYw)z&Shut down the socket before closing itN)r,�shutdown�socket�	SHUT_RDWR�closer0�AttributeError�OSErrorr3s rrCzBaseMySQLSocket.shutdown�se��	��I���v�/�0�0�0��I�O�O�����"�"�"����(�	�	�	��D�D�	���s�?A�A�Ac�n�	|j���|`dS#ttf$rYdSwxYw)zClose the socketN)r,rFr0rGrHr3s r�close_connectionz BaseMySQLSocket.close_connection�sL��	��I�O�O�����"�"�"����(�	�	�	��D�D�	���s��4�4c�.�|���dS�N)rCr3s r�__del__zBaseMySQLSocket.__del__�s���
�
�����rNc	�v�|}|�|���n||_t||j��}|D]�}	|j�|���#t
$r8}t
d|���t|��f���|�d}~wt$r}t
d���|�d}~wwxYwdS)z Send packets to the MySQL serverN��r�values���r)
r8r.r'r,�sendall�IOErrorrrArrG)r4r"�
packet_number�compressed_packet_number�_�packets�packetrs        r�
send_plainzBaseMySQLSocket.send_plain�s���
%���	0��#�#�%�%�%�%�"/�D��"�3��(;�<�<���	<�	<�F�
<��	�!�!�&�)�)�)�)���
�
�
�&���(8�(8�(:�(:�K��<L�<L�'M����������"�
<�
<�
<�&�T�2�2�2��;�����
<����	<�	<s#�A�
B6� 3B�
B6� B1�1B6c	��|�|���n||_|�|���n||_|j}t	|��}g}t
}||k�rt
||��}d�|��}	~tj	|	dd���}
tjdt	|
����dd�tjd|j��zdz}|�||
z��|	dd�}	t	|	��}|���||kr�tj	|	d|���}
tjdt	|
����dd�tjd|j��zd	z}|�||
z��|	|d�}	t	|	��}|���||k��|	r�tj	|	��}
tjdt	|
����dd�tjd|j��ztjd|��dd�z}|�||
z��~	�nGtjd|��dd�tjd|��z|z}t	|��}|d
kr�tj	|��}
|�tjdt	|
����dd�tjd|j��ztjd|��dd�z|
z��nntjd|��dd�tjd|j��ztjdd��dd�z}|�||z��|D]�}
	|j
�|
���#t$r8}t!d|���t%|��f���|�d}~wt&$r}t!d
���|�d}~wwxYwdS)z+Send compressed packets to the MySQL serverNr�@rrrrs@r�2rOrPrRrS)r8r.r:r/rrr'�join�zlib�compressr r!rr,rTrUrrArrG)r4r"rVrWr#r%�zpktsr&r$�tmpbuf�zbuf�header�pkt�
zip_packetrs               r�send_compressedzBaseMySQLSocket.send_compressed�so���	0��#�#�%�%�%�%�"/�D��#�	F��.�.�0�0�0�0�-E�D�*��#���C������%�	��9��3	+�#�C��/�/�D��X�X�d�^�^�F���=������0�0�D���D�#�d�)�)�,�,�Q�q�S�1��+�d�D�$B�C�C�D�!�"�
�

�L�L��$��'�'�'��E�F�F�^�F���K�K�E��.�.�0�0�0��)�#�

5��}�V�J�Y�J�%7�8�8���K��c�$�i�i�0�0��1��5��k�$��(F�G�G�H�%�&��
���V�d�]�+�+�+��	�
�
�+���F�����2�2�4�4�4��)�#�

5��
,��}�V�,�,���K��c�$�i�i�0�0��1��5��k�$��(F�G�G�H��k�$��.�.�q��s�3�4��
���V�d�]�+�+�+����+�d�E�*�*�1�Q�3�/�&�+�d�E�2J�2J�J�S�P�C���H�H�E��r�z�
+��}�S�)�)������K��c�$�i�i�0�0��1��5��k�$��(F�G�G�H��k�$��.�.�q��s�3�4��������K��e�,�,�Q�q�S�1��k�$��(F�G�G�H��k�$��*�*�1�Q�3�/�0��
���V�c�\�*�*�*��	<�	<�J�
<��	�!�!�*�-�-�-�-���
�
�
�&���(8�(8�(:�(:�K��<L�<L�'M����������"�
<�
<�
<�&�T�2�2�2��;�����
<����	<�	<s$�O"�"
Q�,3P�
Q�,P=�=Qc���	td��}d}|dkrI|j�d|z
��}|std����||z
}t	|��}|dk�I|d|_t
jd|dd�dz��d}|}|�t|����t|��}|dd	�}|rH|j�
||��}|dkr|dkrtd����||d	�}||z}|�H|S#t$r8}td
|�
��t|��f���|�d	}~wwxYw)z%Receive packets from the MySQL serverrr���rSrr�NrOrP)�	bytearrayr,�recvrrr.r �unpack�extend�
memoryview�	recv_intorUrrAr)	r4rZ�
packet_len�chunk�payload_len�rest�packet_view�readrs	         r�
recv_plainzBaseMySQLSocket.recv_plain�s���	��s�^�^�F��J��q�.�
)��	���q�:�~�6�6���5�(�t�4�4�4�4��%��� ��[�[�
��q�.�
)�#)��)�D�� �-��f�Q�q�S�k�G�.C�D�D�Q�G�K��D��M�M�)�K�0�0�1�1�1�$�V�,�,�K�%�a�b�b�/�K��
��y�*�*�;��=�=���1�9�5����5�(�t�4�4�4�4�)�$�%�%�0�������
��M���	�	�	�"��D�$4�$4�$6�$6��C�8H�8H�#I�����
�����	���s�DD�
E �(3E�E c���|r\tjd|dd�dz��d}|j�|d|dz���||dzd�}|�ZdSdS)zSplit compressed payloadrrrrlrjN)r ror0r)r4�packet_bunch�payload_lengths   r�_split_zipped_payloadz%BaseMySQLSocket._split_zipped_payloads����	>�#�]�4��a��c�1B�W�1L�M�M�a�P�N���%�%�l�1�~��7I�3I�&J�K�K�K�'���(:�(<�(<�=�L��	>�	>�	>�	>�	>rc�|�	|j���}|d|_|S#t$rYnwxYwt	d��}g}	|j�d��}|rGt|��dkr4||z
}|j�d��}|rt|��dk�4|�r�t|��dkrtd����tj
d|dd�d	z��d}|d|_tj
d|d
d�d	z��d}t|��}t|��|krT|j�|t|��z
��}|std����||z}t|��|k�T|dkr=|�
|��|j���}|d|_|S|�||f��|dkrnutd��}|j�d��}|rGt|��dkr4||z
}|j�d��}|rt|��dk�4|���nE#t$r8}	t!d|���t%|	��f�
��|	�d}	~	wwxYwtd��}
|D]\}}|
t'j|��z
}
�|�
|
��~
	|j���}|d|_|S#t$rYdSwxYw)z0Receive compressed packets from the MySQL serverrrr
�rkrSrrrlrjr]rOrPN)r0�popleftr.�
IndexErrorrmr,rnrrr ror/rr}rrUrrArr`�
decompress)r4rfrerY�abyte�zip_payload_lengthr|�zip_payloadrtr�tmp�payloads            r�recv_compressedzBaseMySQLSocket.recv_compressed"s���	��$�,�,�.�.�C�"%�a�&�D���J���	�	�	��D�	�����3������.	��I�N�N�1�%�%�E��
*�C��K�K�!�O�
*��%����	���q�)�)���
*�C��K�K�!�O�
*��$
.��v�;�;��?�5�(�t�4�4�4�4�&,�]�4���!���w�9N�%O�%O�PQ�%R�"�17����.�"(��t�V�A�a�C�[�7�5J�!K�!K�A�!N��,�U�3�3���+�&�&�);�;�6� �I�N�N�+=��K�@P�@P�+P�Q�Q�E� �9�,�4�8�8�8�8�"-��"5�K�	�+�&�&�);�;�6�"�Q�&���.�.�{�;�;�;��,�4�4�6�6�C�*-�a�&�D�'��J������<�=�=�=�%��.���(��,�,���	���q�)�)���.��F���a��.��e�O�F� �I�N�N�1�-�-�E��.��F���a��.�E�$
.���L�	�	�	�"��D�$4�$4�$6�$6��C�8H�8H�#I�����
�����	�����S�!�!��'.�	,�	,�#�N�G��4�?�7�+�+�+�C�C��"�"�3�'�'�'��	��$�,�,�.�.�C�"%�a�&�D���J���	�	�	��D�D�	���s>�'*�
7�7�FI;�'BI;�;
J=�3J8�8J=�'L-�-
L;�:L;c�Z�||_|jr|j�|��dSdS)zSet the connection timeoutN)r-r,�
settimeout)r4�timeouts  r�set_connection_timeoutz&BaseMySQLSocket.set_connection_timeoutms:��#*�� ��9�	*��I� � ��)�)�)�)�)�	*�	*rFc���|jstd����	|r
tj}n|r
tj}ntj}|�|stj��}	|sd|	_n�|�d���|d}
ts!|
dkrt|��d	kr|d	}
t|
}tj|��}	|
dkrZd
|vr|	xj
tjzc_
d|vr|	xj
tjzc_
d|vr|	xj
tjzc_
d|	_||	_|	���|ra	|	�|��nJ#t(tjf$r1}|j���td
|����|�d}~wwxYw|rb	|	�||��nJ#t(tjf$r1}|j���td|����|�d}~wwxYw|r|	�|��t3|d��r'|	�|j|j���|_n|	�|j��|_|�r#d|	_|jg}
t8jdkrM|jdkrBddg}
t=j|j��}|
� |dg|d	z��d}g}|
D]p}	tj!|j�"��|��d}n>#tj#$r,}|�$tK|����Yd}~�id}~wwxYw|s@|j���tdd�&|�������dSdS#tN$r}tQd��|�d}~wtjt(f$r8}td|�)��tU|��f���|�d}~wtj#$r"}ttK|����|�d}~wtV$r"}ttK|����|�d}~wwxYw)zSwitch the socket to use SSLirSNFT)�reverserrr
rrrzInvalid CA Certificate: zInvalid Certificate/Key: r1)�server_hostname�nt�	localhost�	127.0.0.1z"Unable to verify server identity: z, z&Python installation has no SSL supportrOrP),r,r�ssl�
CERT_REQUIRED�
CERT_OPTIONAL�	CERT_NONE�create_default_context�check_hostname�sort�TLS_V1_3_SUPPORTEDr�TLS_VERSIONS�
SSLContext�options�
OP_NO_TLSv1_2�
OP_NO_TLSv1_1�OP_NO_TLSv1�verify_mode�load_default_certs�load_verify_locationsrU�SSLErrorrF�load_cert_chain�set_ciphers�hasattr�wrap_socketr1�os�namerD�
gethostbyaddrrp�match_hostname�getpeercert�CertificateErrorrrr_�	NameErrorr
rArr=)r4�ca�cert�key�verify_cert�verify_identity�
cipher_suites�tls_versions�	cert_reqs�context�tls_version�ssl_protocolr�	hostnames�aliases�match_found�errs�hostnames                  r�
switch_to_sslzBaseMySQLSocket.switch_to_sslss:���y�	-� �t�,�,�,�,�_	4��
*��-�	�	� �
*��-�	�	��M�	��
;�<�
;��4�6�6��&�3�-2�G�*���!�!�$�!�/�/�/�*�1�o��*�2�#�y�0�2��L�)�)�A�-�2�
#/�q�/�K�+�K�8���.��6�6���)�+�;� ��4�=����3�+<�<��� ��4�=����3�+<�<����l�2�;����3�?�:���%*�G�"�"+�G���&�&�(�(�(��
T�T��1�1�"�5�5�5�5�����.�T�T�T��I�O�O�%�%�%�(�)I�C�)I�)I�J�J�PS�S�����T�����
U�U��+�+�D�#�6�6�6�6�����.�U�U�U��I�O�O�%�%�%�(�)J�S�)J�)J�K�K�QT�T�����U�����
3��#�#�M�2�2�2��t�]�+�+�
;�#�/�/��I�t�/?�0����	�	�$�/�/��	�:�:��	��
�)-��&�!�-�.�	��7�d�?�@�t�'7�;�'F�@�!,�k� :�I�$�2�4�3C�D�D�G��$�$�g�a�j�\�G�A�J�%>�?�?�?�#���� )���H��
�*�4�9�+@�+@�+B�+B�H�M�M�M�
'+�����	�/�.�.�.����C��H�H�-�-�-�-�-�-�-�-�����.����
#���I�O�O�%�%�%�(�N�T�Y�Y�t�_�_�N�N����1
�
�,���
�	W�	W�	W�#�$L�M�M�SV�V�������g�&�	�	�	� ��D�$4�$4�$6�$6��C�8H�8H�#I�����
������#�	4�	4�	4� ��S���*�*��3�����"�	4�	4�	4� ��S���*�*��3�����	4���s��D6N+�E&�%N+�&F-�<,F(�(F-�-N+�3G
�	N+�
H� ,H�H�C'N+�9,L)�%N+�)M$�8"M�N+�M$�$AN+�+
Q/�5O�Q/�3P�Q/�#Q�
Q/�
Q*�*Q/)NN)FFNN)�__name__�
__module__�__qualname__�__doc__r5r8r:r>rArCrJrMr[�sendrhryrnr}r�r�r��rrr)r)Xs:�����������#�#�#�.�.�.�"�"�"�"�"�"����������<�<�<�<�&�D�L<�L<�L<�L<�\ � � �D�D�>�>�>�I�I�I�V*�*�*�����m4�m4�m4�m4�m4�m4rr)c�6��eZdZdZd�fd�	Zd�Zd�Zd�Z�xZS)�MySQLUnixSocketzoMySQL socket class using UNIX sockets

    Opens a connection through the UNIX socket of the MySQL Server.
    �/tmp/mysql.sockc�V��t�����||_dSrL)�superr5�unix_socket)r4r��	__class__s  �rr5zMySQLUnixSocket.__init__�s'���
��������&����rc��|jSrL)r�r3s rrAzMySQLUnixSocket.get_address�s����rc��	tjtjtj��|_|j�|j��|j�|j��dS#t$r8}td|�
��t|��f���|�d}~wt$r"}tt|����|�d}~wwxYw)Ni�rP)rD�AF_UNIX�SOCK_STREAMr,r�r-�connectr�rUrrAr�	Exceptionr)r4rs  rr>zMySQLUnixSocket.open_connection�s���		4��
�f�n�f�6H�I�I�D�I��I� � ��!9�:�:�:��I���d�.�/�/�/�/�/���	�	�	� ��D�$4�$4�$6�$6��C�8H�8H�#I�����
������	4�	4�	4� ��S���*�*��3�����	4���s$�A,A0�0
C�:3B-�-
C�:C�Cc�:�tjdt��dS)zSwitch the socket to use SSL.z2SSL is disabled when using unix socket connectionsN)�warnings�warn�Warning)r4�args�kwargss   rr�zMySQLUnixSocket.switch_to_ssl�s&���
�@��	
�	
�	
�	
�	
r)r�)	r�r�r�r�r5rAr>r��
__classcell__�r�s@rr�r��st���������
'�'�'�'�'�'� � � �
4�
4�
4�
�
�
�
�
�
�
rr�c�0��eZdZdZd�fd�	Zd�Zd�Z�xZS)	�MySQLTCPSocketzXMySQL socket class using TCP/IP

    Opens a TCP/IP connection to the MySQL Server.
    r���Fc���t�����||_||_||_d|_dS)Nr)r�r5r1�server_port�
force_ipv6�_family)r4�host�portr�r�s    �rr5zMySQLTCPSocket.__init__
s;���
��������������$�������rc�$�|j�d|j��S)N�:)r1r�r3s rrAzMySQLTCPSocket.get_addresss���"�7�7�T�%5�7�7�7rc	��dgdz}	tj|j|jdtjtj��}|D]=}|jr|dtjkr|}n|dtjkr|}n�>|jr|d�td|j�����|d�|d}|\|_
}}}}nE#t$r8}td|���t|��f���|�d}~wwxYw	tj|j
||��|_|j�|j��|j�|��dS#t$r1}td|j|jt|��f���|�d}~wt$$r"}t't)|����|�d}~wwxYw)z.Open the TCP/IP connection to the MySQL serverN�rzNo IPv6 address found for i�rP)rD�getaddrinfor1r�r��SOL_TCPr��AF_INET6�AF_INETrr�rUrArr,r�r-r�r�rr)	r4�addrinfo�	addrinfos�info�socktype�protorX�sockaddrrs	         rr>zMySQLTCPSocket.open_connections+���6�A�:��	D��*�� �� ���"�����I�"�
�
���?��t�A�w�&�/�'A��#�H��E���7�f�n�,��#�H��E����
V�8�A�;�
V�$�%T�$�BR�%T�%T�U�U�U���{�
(�$�Q�<��<D�8�T�\�8�U�A�x�x���	�	�	� ��D�$4�$4�$6�$6��C�8H�8H�#I�����
�����	����	6��
�d�l�H�e�D�D�D�I��I� � ��!9�:�:�:��I���h�'�'�'�'�'���	�	�	� ���$��$���$�$������
������	6�	6�	6�"�3�s�8�8�,�,�#�5�����	6���s=�B,C�
D�3C?�?D�AE#�#
G�-,F�
G�&G�G)r�r�F)r�r�r�r�r5rAr>r�r�s@rr�r�se���������
������8�8�8�.6�.6�.6�.6�.6�.6�.6rr�) r�r�rDr r�r`�collectionsrr��PROTOCOL_TLSv1�PROTOCOL_TLSv1_1�PROTOCOL_TLSv1_2r�r�r�PROTOCOL_SSLv23r	r��ImportError�	constantsr�errorsrr
r�utilsrrr'r)r�r�r�rr�<module>r�s���:��
�	�	�	�
�
�
�
�
�
�
�
�����������������J�J�J��#��'��'���L��7�3��'�'�	!����
�
 ����
!���m�4�4�H������������������)�(�(�(�(�(�G�G�G�G�G�G�G�G�G�G�!�!�!�!�!�!�)�)�)����H4�H4�H4�H4�H4�H4�H4�H4�V
�
�
�
�
�o�
�
�
�B>6�>6�>6�>6�>6�_�>6�>6�>6�>6�>6s�A	A(�(A2�1A2