§
    Ètºf‡  ã            	       ó(  — d Z ddlmZmZmZmZmZmZmZm	Z	m
Z
mZ ddlmZmZmZ  ed¦  «        ZeZeZeZeZeZeZeZeZeZej        Zeeeeeeeeeg	e_        ee_        ej        Zeeeeege_        ee_        dZdZ G d„ de¦  «        Z d	„ Z!d
„ Z"dS )z@
Windows implementation of local network interface enumeration.
é    )
ÚPOINTERÚ	StructureÚWinDLLÚbyrefÚc_intÚc_void_pÚcastÚcreate_string_bufferÚcreate_unicode_bufferÚ
wstring_at)ÚAF_INET6ÚSOCK_STREAMÚsocketÚws2_32i  Hi'  c                   ó   — e Zd ZdefdefgZdS )ÚSOCKET_ADDRESSÚ
lpSockaddrÚiSockaddrLengthN)Ú__name__Ú
__module__Ú__qualname__r   r   Ú_fields_© ó    úa/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/internet/test/_win32ifaces.pyr   r   M   s#   € € € € € Ø˜xÐ(Ð+<¸eÐ*DÐE€H€H€Hr   r   c                 ó2   ‡ —  G ˆ fd„dt           ¦  «        }|S )Nc                   ó&   •— e Zd Zdefde” z  fgZdS )ú%make_SAL.<locals>.SOCKET_ADDRESS_LISTÚiAddressCountÚAddressN)r   r   r   r   r   r   )Úlns   €r   ÚSOCKET_ADDRESS_LISTr   R   s(   ø€ € € € € Ø$ eÐ,¨y¸.È2Ñ:MÐ.NÐOˆˆˆr   r"   )r   )r!   r"   s   ` r   Úmake_SALr#   Q   sI   ø€ ðPð Pð Pð Pð Pð Pð P�iñ Pô Pð Pð Ðr   c                  óz  — t          t          t          ¦  «        } d}t          ¦   «         }t	          d¦  «        D ]]}t          |¦  «        }t          |                      ¦   «         t          dd||t          |¦  «        dd¦	  «	        }|r|j
        r|j
        }Œ] |rt          d¦  «        ‚t          |t          t          d¦  «        ¦  «        ¦  «        }|d         j        }t          |t          t          |¦  «        ¦  «        ¦  «        }d}t!          |¦  «        }	g }
t	          |d         j        ¦  «        D ]y}||_
        |d         j        |         }t%          |j        |j        d|	t          |¦  «        ¦  «        }|rt          d¦  «        ‚|
                     t-          |	¦  «        ¦  «         Œzd„ |
D ¦   «         S )z¼
    Return a list of strings in colon-hex format representing all the link local
    IPv6 addresses available on the system, as reported by
    I{WSAIoctl}/C{SIO_ADDRESS_LIST_QUERY}.
    i   é   r   zWSAIoctl failurei   zWSAAddressToString failurec                 ó   — g | ]}d |v ¯|‘Œ	S )ú%r   )Ú.0Úaddrs     r   ú
<listcomp>z2win32GetLinkLocalIPv6Addresses.<locals>.<listcomp>‰   s   € Ð4Ð4Ð4�T¨¨t¨¨ˆD¨¨¨r   )r   r   r   r   Úranger
   ÚWSAIoctlÚfilenoÚSIO_ADDRESS_LIST_QUERYr   ÚvalueÚRuntimeErrorr	   r   r#   r   r   r    ÚWSAAddressToStringr   r   Úappendr   )ÚsÚsizeÚretBytesÚiÚbufÚretÚaddrListÚ	addrCountÚaddressStringBufLengthÚaddressStringBufÚretListÚaddresss               r   Úwin32GetLinkLocalIPv6Addressesr?   X   s»  € õ 	�x�Ñ%Ô%€AØ€DÝ‰wŒw€HÝ�1‰XŒXð ð ˆÝ" 4Ñ(Ô(ˆÝØ�HŠH‰JŒJÕ.°°1°c¸4ÅÀxÁÄÐRSÐUVñ
ô 
ˆð ð 	�8”>ð 	Ø”>ˆDˆDàð ð /ÝÐ-Ñ.Ô.Ð.å�C�¥¨!¡¤Ñ-Ô-Ñ.Ô.€HØ˜”Ô)€IÝ�C�¥¨)Ñ!4Ô!4Ñ5Ô5Ñ6Ô6€Hà!ÐÝ,Ð-CÑDÔDÐà€GÝ�8˜A”;Ô,Ñ-Ô-ð 5ð 5ˆØ/ˆŒØ˜1”+Ô% aÔ(ˆÝ ØÔØÔ#ØØÝ�(‰OŒOñ
ô 
ˆð ð 	=ÝÐ;Ñ<Ô<Ð<Ø�Š•zÐ"2Ñ3Ô3Ñ4Ô4Ð4Ð4Ø4Ð4˜WÐ4Ñ4Ô4Ð4r   N)#Ú__doc__Úctypesr   r   r   r   r   r   r	   r
   r   r   r   r   r   ÚWS2_32ÚSOCKETÚDWORDÚLPVOIDÚ
LPSOCKADDRÚLPWSAPROTOCOL_INFOÚLPTSTRÚLPDWORDÚLPWSAOVERLAPPEDÚ"LPWSAOVERLAPPED_COMPLETION_ROUTINEr,   ÚargtypesÚrestypeÚWSAAddressToStringWr1   r.   Ú	WSAEFAULTr   r#   r?   r   r   r   ú<module>rP      s­  ððð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 1Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0à	ˆ�Ñ	Ô	€à	€Ø€Ø	€Ø€
ØÐ Ø	€Ø
€Ø€Ø%-Ð "ð Œ?€à
Ø	Ø
Ø	Ø
Ø	ØØØ&ð
€Ô ð €Ô ð Ô/Ð Ø)¨5Ð2DÀfÈgÐVÐ Ô Ø"Ð Ô ð $Ð Ø€	ðFð Fð Fð Fð F�Yñ Fô Fð Fðð ð ð15ð 15ð 15ð 15ð 15r   