
    9?h)W                        S r SSKrSSKrSSKrSSKrSSKrSSKJr   SSKr\R                  \R                  \R                  S.r\" \S5      (       a  \R                  O\R                  \S'   \" \S5      =(       a    \R                   rSS	KJrJrJrJrJrJr  S
SKJr  S
SKJrJrJr  S
SK J!r!  S
SK"J#r#  S\$S\%4S jr&S\'S\(S\\'   4S jr) " S S5      r* " S S\*5      r+ " S S\*5      r,g! \ a    Sr Nnf = f)zGModule implementing low-level socket communication with MySQL servers.
    N)deque)TLSv1TLSv1.1TLSv1.2PROTOCOL_TLSTLSv1.3HAS_TLSv1_3F)AnyDequeListOptionalTupleUnion   )MAX_PACKET_LENGTH)InterfaceErrorNotSupportedErrorOperationalError)StrOrBytesPath)init_bytearrayerrreturnc                 p    U R                   (       d  [        U 5      $ U R                    SU R                   3$ )zWReformat the IOError error message

This function reformats the IOError error message.
 )errnostrstrerror)r   s    _/var/www/ev-aguas/ev-aguas-proceso/venv/lib/python3.13/site-packages/mysql/connector/network.py_strioerrorr   E   s-    
 993xii[#,,((    bufpktnrc                 R   / n[        U 5      n[        nX4:  aJ  UR                  S[        R                  " SU5      -   U SU -   5        XS n [        U 5      nUS-   nX4:  a  MJ  UR                  [        R                  " SU5      SS [        R                  " SU5      -   U -   5        U$ )z0Prepare a packet for sending to the MySQL server   <BNr   <Ir      )lenr   appendstructpack)r!   r"   pktspllen	maxpktlens        r   _prepare_packetsr/   O   s    DHE!I

Ofkk$&>>ZiPQ*oC		 

 	KKD%(1-D%0HH3NOKr    c                   p   \ rS rSrSrS!S jrS\4S jrS\4S jrS\	4S jr
S\	4S	 jrS!S
 jrS!S jrS!S jr  S"S\S\\   S\\   SS4S jjr\r  S"S\S\\   S\\   SS4S jjrS\4S jr\rS\SS4S jrS\\   4S jrS\\   SS4S jr    S#S\S\S\S\S\S\\   S\\\      SS4S jjrS rg)$BaseMySQLSocket]   a  Base 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
r   Nc                 v    S U l         S U l        SU l        SU l        [	        5       U l        S U l        SU l        g )Ni    )sock_connection_timeout_packet_number_compressed_packet_numberr   _packet_queueserver_hostrecvsizeselfs    r   __init__BaseMySQLSocket.__init__f   s:    -1	26 #%.0&/4w*.!r    c                 p    U R                   S-   U l         U R                   S:  a  SU l         U R                   $ )zIncrements the packet numberr      r   )r7   r<   s    r   next_packet_number"BaseMySQLSocket.next_packet_numberp   s7    "11A5$"#D"""r    c                 p    U R                   S-   U l         U R                   S:  a  SU l         U R                   $ )z'Increments the compressed packet numberr   rA   r   )r8   r<   s    r   next_compressed_packet_number-BaseMySQLSocket.next_compressed_packet_numberw   s7    )-)G)G!)K&))C/-.D*---r    c                     [         e)zOpen the socketNotImplementedErrorr<   s    r   open_connectionBaseMySQLSocket.open_connection~       !!r    c                     [         e)zGet the location of the socketrH   r<   s    r   get_addressBaseMySQLSocket.get_address   rL   r    c                      U R                   R                  [        R                  5        U R                   R	                  5         U ?g! [        [        4 a     gf = f)z&Shut down the socket before closing itN)r5   shutdownsocket	SHUT_RDWRcloser9   AttributeErrorOSErrorr<   s    r   rQ   BaseMySQLSocket.shutdown   sJ    	IIv//0IIOO"( 		s   AA AAc                 j     U R                   R                  5         U ?g! [        [        4 a     gf = f)zClose the socketN)r5   rT   r9   rU   rV   r<   s    r   close_connection BaseMySQLSocket.close_connection   s2    	IIOO"( 		s    22c                 $    U R                  5         g N)rQ   r<   s    r   __del__BaseMySQLSocket.__del__   s    r    r!   packet_numbercompressed_packet_numberc           	      J   UnUc  U R                  5         OX l        [        XR                  5      nU H  n U R                  R	                  U5        M!     g! [
         a)  n[        SU R                  5       [        U5      4S9UeSnAf[         a  n[        SS9UeSnAff = f)z Send packets to the MySQL serverN  r   values  r   )
rB   r7   r/   r5   sendallIOErrorr   rN   r   rU   )r=   r!   r_   r`   _packetspacketr   s           r   
send_plainBaseMySQLSocket.send_plain   s     % ##%"/"3(;(;<F<		!!&)   &(8(8(:K<L'M " <&T2;<s#   A
B""$BB"
BB"c           	         Uc  U R                  5         OX l        Uc  U R                  5         OX0l        U R                  n[	        U5      n/ n[
        nXW:  Ga  [        X5      nSR                  U5      n	A[        R                  " U	SS 5      n
[        R                  " S[	        U
5      5      SS [        R                  " SU R                  5      -   S-   nUR                  X-   5        U	SS n	[	        U	5      nU R                  5         XW:  a  [        R                  " U	SU 5      n
[        R                  " S[	        U
5      5      SS [        R                  " SU R                  5      -   S	-   nUR                  X-   5        XS n	[	        U	5      nU R                  5         XW:  a  M  U	(       a  [        R                  " U	5      n
[        R                  " S[	        U
5      5      SS [        R                  " SU R                  5      -   [        R                  " SU5      SS -   nUR                  X-   5        A	GO9[        R                  " SU5      SS [        R                  " SU5      -   U-   n[	        U5      nUS
:  a  [        R                  " U5      n
UR                  [        R                  " S[	        U
5      5      SS [        R                  " SU R                  5      -   [        R                  " SU5      SS -   U
-   5        Oj[        R                  " SU5      SS [        R                  " SU R                  5      -   [        R                  " SS5      SS -   nUR                  X-   5        U H  n U R                  R                  U5        M!     g! [         a)  n[!        SU R#                  5       [%        U5      4S9UeSnAf[&         a  n[!        SS9UeSnAff = f)z+Send compressed packets to the MySQL serverNr     @  r&   r   r'   r%   s    @ r$   2   rb   rc   re   rf   )rB   r7   rE   r8   r(   r   r/   joinzlibcompressr*   r+   r)   r5   rg   rh   r   rN   r   rU   )r=   r!   r_   r`   r"   r-   zpktsr.   r,   tmpbufzbufheaderpkt
zip_packetr   s                  r   send_compressedBaseMySQLSocket.send_compressed   s     ##%"/#+..0-E*##C%	#C/DXXd^F==0DD#d),Qq1++dD$B$BCD!" 
 LL'EF^FKE..0#}}VJY%78KKc$i015kk$(F(FGH%& 
 V]+
+F224 # }}V,KKc$i015kk$(F(FGHkk$.q34 
 V]+++dE*1Q/&++dE2JJSPCHErz}}S)KKc$i015kk$(F(FGHkk$.q34  KKe,Qq1kk$(F(FGHkk$*1Q/0 
 V\*J<		!!*-    &(8(8(:K<L'M " <&T2;<s$   <N
O&&$O

O&
O!!O&c                 `    [        S5      nSnUS:  aE  U R                  R                  SU-
  5      nU(       d	  [        SS9eX-  n[	        U5      nUS:  a  ME  US   U l        [        R                  " SUSS S-   5      S   nUnUR                  [        U5      5        [        U5      nUSS	 nU(       aA  U R                  R                  Xe5      nUS:X  a  US:  a	  [        SS9eXgS	 nXW-  nU(       a  MA  U$ ! [         a)  n[        S
U R                  5       [        U5      4S9UeS	nAff = f)z%Receive packets from the MySQL serverr    r        rf   r'   r&       Nrb   rc   )	bytearrayr5   recvr   r(   r7   r*   unpackextend
memoryview	recv_intorh   r   rN   r   )	r=   rk   
packet_lenchunkpayload_lenrestpacket_viewreadr   s	            r   
recv_plainBaseMySQLSocket.recv_plain  s:   	s^FJq.		q:~6(t44 [
 q. #))D --fQqkG.CDQGK DMM)K01$V,K%ab/Kyy**;=19(t44)%0 $ M 	"D$4$4$6C8H#I	s%   AC: BC: 8C: :
D-$D((D-packet_bunchc                     U(       aR  [         R                  " SUSS S-   5      S   nU R                  R                  USUS-    5        XS-   S nU(       a  MQ  gg)zSplit compressed payloadr&   r   r'   r   r}   N)r*   r   r9   r)   )r=   r   payload_lengths      r   _split_zipped_payload%BaseMySQLSocket._split_zipped_payload+  s]    #]]4a1BW1LMaPN%%l1~7I&JK'(:(<=L lr    c                      U R                   R                  5       nUS   U l        U$ ! [         a     Of = f[	        S5      n/ n U R
                  R                  S5      nU(       aF  [        U5      S:  a7  X$-  nU R
                  R                  S5      nU(       a  [        U5      S:  a  M7  U(       Ga  [        U5      S:  a	  [        SS9e[        R                  " SUSS S	-   5      S   nUS   U l        [        R                  " SUS
S S	-   5      S   n[        U5      n[        U5      U:  aL  U R
                  R                  U[        U5      -
  5      nU(       d	  [        SS9eXx-   n[        U5      U:  a  ML  US:X  a7  U R                  U5        U R                   R                  5       nUS   U l        U$ UR                  Xg45        US::  a  O[        S5      nU R
                  R                  S5      nU(       aF  [        U5      S:  a7  X$-  nU R
                  R                  S5      nU(       a  [        U5      S:  a  M7  U(       a  GM  O6! [         a)  n	[!        SU R#                  5       [%        U	5      4S9U	eSn	A	ff = f[        S5      n
U H  u  pkU
[&        R(                  " U5      -  n
M      U R                  U
5        A
 U R                   R                  5       nUS   U l        U$ ! [         a     gf = f)z0Receive compressed packets from the MySQL serverr'   r    r      r~   rf   r&   r   r   r}   ro   rb   rc   N)r9   popleftr7   
IndexErrorr   r5   r   r(   r   r*   r   r8   r   r   r)   rh   r   rN   r   rr   
decompress)r=   rx   rw   rj   abytezip_payload_lengthr   zip_payloadr   r   tmppayloads               r   recv_compressedBaseMySQLSocket.recv_compressed2  s   	$$,,.C"%a&DJ 		 3.	IINN1%ECK!O		q) CK!O v;?(t44 &,]]4!w9N%OPQ%R"17. "(tVAa[75J!KA!N,U3+&);; IINN+=K@P+PQE ,488"-"5K	 +&);; "Q&..{;,,446C*-a&D'J<=%. (,		q)FaOF IINN1-E FaE &L  	"D$4$4$6C8H#I	 S!'.#N4??7++C (/ 	""3'	$$,,.C"%a&DJ 		sW   %( 
55A&I .CI ><I ;I A1I I 
J$J  J
%K0 0
K=<K=timeoutc                 j    Xl         U R                  (       a  U R                  R                  U5        gg)zSet the connection timeoutN)r6   r5   
settimeout)r=   r   s     r   set_connection_timeout&BaseMySQLSocket.set_connection_timeout~  s&    #* 99II  ) r    cacertkeyverify_certverify_identitycipher_suitestls_versionsc                 l	   U R                   (       d	  [        SS9e U(       a  [        R                  nO(U(       a  [        R                  nO[        R
                  nUb  U(       d$  [        R                  " 5       n	U(       d  SU	l        OUR                  SS9  US   n
[        (       d  U
S:X  a  [        U5      S	:  a  US	   n
[        U
   n[        R                  " U5      n	U
S:X  a{  S
U;  a#  U	=R                  [        R                  -  sl        SU;  a#  U	=R                  [        R                  -  sl        SU;  a#  U	=R                  [        R                   -  sl        SU	l        Xl        U	R%                  5         U(       a   U	R'                  U5        U(       a   U	R/                  X#5        U(       a  U	R1                  U5        [3        U S5      (       a*  U	R5                  U R                   U R6                  S9U l         O U	R5                  U R                   5      U l         U(       Ga  SU	l        U R6                  (       a  U R6                  /O/ n[8        R:                  S:X  aO  U R6                  S:X  a?  SS/n[<        R>                  " U R6                  5      nURA                  US   /US	   -   5        Sn/ nU H5  n [        RB                  " U R                   RE                  5       U5        Sn  O   U(       d7  U R                   R-                  5         [        SSRM                  U5       35      egg! [(        [        R*                  4 a.  nU R                   R-                  5         [        SU 35      UeSnAff = f! [(        [        R*                  4 a.  nU R                   R-                  5         [        SU 35      UeSnAff = f! [        RF                   a&  nURI                  [K        U5      5         SnAGMD  SnAff = f! [N         a  n[Q        S5      UeSnAf[        R*                  [(        4 a)  n[        SU RS                  5       [U        U5      4S9UeSnAf[        RF                   a  n[        [K        U5      5      UeSnAf[V         a  n[        [K        U5      5      UeSnAff = f)zSwitch the socket to use SSLi   rf   NFT)reverser   r   r   r   r   r   zInvalid CA Certificate: zInvalid Certificate/Key: r:   )server_hostnament	localhost	127.0.0.1z"Unable to verify server identity: z, z&Python installation has no SSL supportrb   rc   ),r5   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_locationsrh   SSLErrorrT   load_cert_chainset_ciphershasattrwrap_socketr:   osnamerR   gethostbyaddrr   match_hostnamegetpeercertCertificateErrorr)   r   rq   	NameErrorr   rN   r   rI   )r=   r   r   r   r   r   r   r   	cert_reqscontexttls_versionssl_protocolr   	hostnamesaliasesmatch_founderrshostnames                     r   switch_to_sslBaseMySQLSocket.switch_to_ssl  s    yy t,,_	4--	 --	MM	#<446&-2G*!!$!/*1o**#y0L)A-".q/K+K8..6)+ 43+<+<< 43+<+<<l23??:%*G""+&&(T11"5 U++D6 ##M2t]++#//IIt/?/? 0 	 $//		:	)-&=A=M=M(8(8'9SU	77d?t'7'7;'F!,k :I$2243C3CDG$$gaj\GAJ%>?# )H
 **499+@+@+BHM
 '+ !* #IIOO%(<TYYt_<MN  #- '  . TIIOO%(+CC5)IJPSST  . UIIOO%(+DSE)JKQTTU< // .CH--.  	W#$LMSVVg& 	 D$4$4$6C8H#I ## 	4 S*3" 	4 S*3	4s   E+P	 L6 P	 !N 2DP	 /O0AP	 6M>)M99M>>P	 O	)OO		P	 P P:P	 PP	 	
R3PR3<$Q  R37RR3R..R3)r8   r6   r7   r9   r;   r:   r5   r   N)NN)FFNN) __name__
__module____qualname____firstlineno____doc__r>   intrB   rE   r
   rJ   rN   rQ   rY   r]   bytesr   rl   sendrz   r   r   r   r   r   r   r   boolr   r   r   __static_attributes__ r    r   r1   r1   ]   s   "#C #.s ." ""S " (,26	<<  }< #+3-	<
 
<0 D
 (,26	Q<Q<  }Q< #+3-	Q<
 
Q<f I  D D>) > >J)!4 JX*hsm * * " %'+,0m4m4 m4 	m4
 m4 m4  }m4 tCy)m4 
m4 m4r    r1   c                   j   ^  \ rS rSrSrSS\SS4U 4S jjjrS\4S jrSS jrS	\	S
\	SS4S jr
SrU =r$ )MySQLUnixSocketi  zgMySQL socket class using UNIX sockets

Opens a connection through the UNIX socket of the MySQL Server.
unix_socketr   Nc                 .   > [         TU ]  5         Xl        g r\   )superr>   r   )r=   r   	__class__s     r   r>   MySQLUnixSocket.__init__  s     +r    c                     U R                   $ r\   )r   r<   s    r   rN   MySQLUnixSocket.get_address  s    r    c                     [         R                   " [         R                  [         R                  5      U l        U R                  R	                  U R
                  5        U R                  R                  U R                  5        g ! [         a)  n[        SU R                  5       [        U5      4S9UeS nAf[         a  n[        [        U5      5      UeS nAff = f)Ni  rc   )rR   AF_UNIXSOCK_STREAMr5   r   r6   connectr   rh   r   rN   r   	Exceptionr   )r=   r   s     r   rJ   MySQLUnixSocket.open_connection  s    	4 2 2DI II  !9!9:IId../ 	 D$4$4$6C8H#I  	4 S*3	4s$   BB 
C$B33C CCargskwargsc                 :    [         R                  " S[        5        g)zSwitch the socket to use SSL.z2SSL is disabled when using unix socket connectionsN)warningswarnWarning)r=   r   r   s      r   r   MySQLUnixSocket.switch_to_ssl  s     	@	
r    )r5   r   )z/tmp/mysql.sockr   )r   r   r   r   r   r   r>   rN   rJ   r
   r   r   __classcell__r   s   @r   r   r     sS    
,C , , , S  4

$'
	
 
r    r   c            	       ^   ^  \ rS rSrSr SS\S\S\SS4U 4S jjjrS\4S	 jr	SS
 jr
SrU =r$ )MySQLTCPSocketi  zPMySQL socket class using TCP/IP

Opens a TCP/IP connection to the MySQL Server.
hostport
force_ipv6r   Nc                 T   > [         TU ]  5         Xl        X l        X0l        SU l        g )Nr   )r   r>   r:   server_portr  _family)r=   r   r   r  r   s       r   r>   MySQLTCPSocket.__init__  s(     	 $ $ *r    c                 8    U R                    SU R                   3$ )N:)r:   r  r<   s    r   rN   MySQLTCPSocket.get_address(  s!    ""#1T%5%5$677r    c           	         Sn [         R                  " U R                  U R                  S[         R                  [         R
                  5      nU HJ  nU R                  (       a  US   [         R                  :X  a  Un  OUS   [         R                  :X  d  MH  Un  O   U R                  (       a  US   c  [        SU R                   35      eUS   c  US   nUu  U l        pVpx [         R                   " U R                  XV5      U l        U R                  R                  U R                   5        U R                  R#                  U5        g! [         a)  n[        SU R                  5       [        U5      4S9UeSnAff = f! [         a0  n[        SU R                  U R                  [        U5      4S9UeSnAf[$         a  n['        [)        U5      5      UeSnAff = f)z.Open the TCP/IP connection to the MySQL server)NNNNNr   NzNo IPv6 address found for i  rc   )rR   getaddrinfor:   r  r   SOL_TCPr  AF_INET6AF_INETr   rh   rN   r   r  r5   r   r6   r   r   r   r   )	r=   addrinfo	addrinfosinfor   socktypeprotori   sockaddrs	            r   rJ   MySQLTCPSocket.open_connection+  s    + 		**    ""I "??tAw&//'A#H7fnn,#H " 8A;#6$'A$BRBRAS%TUU{"$Q< 8@4x	6dllHDDIII  !9!9:IIh'  	 D$4$4$6C8H#I	  	 $$$$$   	6"3s8,#5	6sD   BE A E $A&F 
E>$E99E>
G+F66GGG)r  r  r:   r  r5   )r   i  Fr   )r   r   r   r   r   r   r   r   r>   rN   rJ   r   r   r   s   @r   r   r     sO     MR-0EI	 8S 886 86r    r   )-r   r   rR   r*   r   rr   collectionsr   r   PROTOCOL_TLSv1PROTOCOL_TLSv1_1PROTOCOL_TLSv1_2r   r   r   PROTOCOL_SSLv23r	   r   ImportErrortypingr
   r   r   r   r   r   	constantsr   errorsr   r   r   typesr   utilsr   rh   r   r   r   r   r/   r1   r   r   r   r    r   <module>r      s  > 
      ##''''L 3'' 	   
 !m4H
 < ; ( G G ! !)W ) )%  U T4 T4n"
o "
JJ6_ J6A  s   A-C/ /C:9C: