File: //lib/python3/dist-packages/hyperlink/__pycache__/_socket.cpython-310.pyc
o
    �(_�  �                   @   s|   z	d dl mZ W dS  ey=   d dlmZ erY dS d dlZd dl Z G dd� dej�Zejj	j
Z
ejj	jZdd� ZY dS w )�    )�	inet_pton)�
TYPE_CHECKINGNc                   @   s@   e Zd Zdejfdejfdejd fdejd fdejfgZdS )	�SockAddr�	sa_family�__pad1�	ipv4_addr�   �	ipv6_addr�   �__pad2N)	�__name__�
__module__�__qualname__�ctypes�c_short�c_ushort�c_byte�c_ulong�_fields_� r   r   �3/usr/lib/python3/dist-packages/hyperlink/_socket.pyr      s    �r   c                 C   s�   t � }|�d�}| |_t�t�|��}ztjdtjdi|  \}}W n t	y-   t�
d��w t|| d t�|�t�|��dkrEt�
t�
� ��t�t||�|�S )N�ascii)r   r   )r	   r
   zunknown address familyr   )r   �encoder   r   �c_int�sizeof�socket�AF_INET�AF_INET6�KeyError�error�WSAStringToAddressA�byref�FormatError�	string_at�getattr)�address_family�	ip_string�addr�ip_string_bytes�	addr_size�	attribute�sizer   r   r   r      s0   
��
���	r   )r   r   �ImportError�typingr   r   �	Structurer   �windll�ws2_32r    �WSAAddressToStringAr   r   r   r   �<module>   s    
	
�