HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/twisted/internet/test/__pycache__/_win32ifaces.cpython-310.pyc
o

�b��	@s�dZddlmZmZmZmZmZmZmZm	Z	m
Z
mZddlm
Z
mZmZed�ZeZeZeZeZeZeZeZeZeZejZeeeeeeeeeg	e_ee_ejZeeeeege_ee_dZdZGdd�de�Z d	d
�Z!dd�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_32iHi'c@seZdZdefdefgZdS)�SOCKET_ADDRESS�
lpSockaddr�iSockaddrLengthN)�__name__�
__module__�__qualname__rr�_fields_�rr�D/usr/lib/python3/dist-packages/twisted/internet/test/_win32ifaces.pyrMsrcsG�fdd�dt�}|S)Ncs eZdZdefde�fgZdS)z%make_SAL.<locals>.SOCKET_ADDRESS_LIST�
iAddressCount�AddressN)rrrrrrr��lnrr�SOCKET_ADDRESS_LISTRsr)r)rrrrr�make_SALQsrcCsttt�}d}t�}td�D]}t|�}t|��tdd||t	|�dd�	}|r-|j
r-|j
}q|r4td��t|t
td���}|dj}t|t
t|���}d}t|�}	g}
t|dj�D]%}||_
|dj|}t|j|jd|	t	|��}|rxtd��|
�t|	��qZdd�|
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�rzWSAIoctl failureizWSAAddressToString failurecSsg|]}d|vr|�qS)�%r)�.0�addrrrr�
<listcomp>�sz2win32GetLinkLocalIPv6Addresses.<locals>.<listcomp>)rrr
r�ranger	�WSAIoctl�fileno�SIO_ADDRESS_LIST_QUERYr�value�RuntimeErrorrrrrr
r�WSAAddressToStringrr�appendr)�s�size�retBytes�i�buf�ret�addrList�	addrCount�addressStringBufLength�addressStringBuf�retList�addressrrr�win32GetLinkLocalIPv6AddressesXsB
�

�r8N)#�__doc__�ctypesrrrrrrrr	r
rrrr
�WS2_32�SOCKET�DWORD�LPVOID�
LPSOCKADDR�LPWSAPROTOCOL_INFO�LPTSTR�LPDWORD�LPWSAOVERLAPPED�"LPWSAOVERLAPPED_COMPLETION_ROUTINEr%�argtypes�restype�WSAAddressToStringWr*r'�	WSAEFAULTrrr8rrrr�<module>sB0�