
    iB
                        d dl mZmZ d dlZd dlZd dlZd dlZd dlZddl	m
Z ddl
mZ  G d dej                        Zd ej                  e      fd	ej                   fd
ej"                  fd ej                  ej$                        fd ej                  ej$                        fge_         ej(                  ej*                  j-                   ej.                         d    dk(  rdnd      d      ZddZy)    )print_functionunicode_literalsN   )_shared)Uc                       e Zd Zy)ifaddrsN)__name__
__module____qualname__     Q/home/ubuntu/myenv/lib/python3.12/site-packages/copyparty/stolen/ifaddr/_posix.pyr	   r	      s    r   r	   ifa_nextifa_name	ifa_flagsifa_addrifa_netmaskSunOSsocketcT)	use_errnoc                     t        j                  t                     x}}t        j	                  t        j
                  |            }|dk7  r3t        j                         }t        |t        j                  |            t        j                         fd}|r|d   j                  j                  d      }t        j                  |d   j                         }|r>|d   j"                  rM|d   j"                  d   j$                  s1|d   j                   d   j$                  |d   j"                  d   _        t        j                  |d   j"                        }t'        |t(              r7t+        |d         }	t        j,                  t/        j0                  |	            }
nX|)d}t3        |j5                  |d   j"                              t+        d|z         }	t/        j6                  |	      j8                  }
t        j:                  ||
|      } |||       n| r	 ||d        |d   j<                  }|rt        j?                  |       jA                         S )Nr   c                     | vr4d }	 t        j                  |       }t	        j
                  | | g |      | <   ||    j                  j                  |       y y # t        t        f$ r Y Ow xY w)N)index)r   if_nametoindexOSErrorAttributeErrorsharedAdapteripsappend)adapter_nameipr   r!   s      r   add_ipzget_adapters.<locals>.add_ip(   s    s"E --l; !'lBe!C >!!((,  ^, s   A A.-A.zUTF-8)encodingz sockaddr_to_ip({}) returned Nonez0.0.0.0/)!ctypesPOINTERr	   libc
getifaddrsbyref	get_errnor   osstrerrorcollectionsOrderedDictr   decoder   sockaddr_to_ipr   r   
sa_familiy
isinstancetupler   ipv6_prefixlength	ipaddressIPv6Address	ExceptionformatIPv4Network	prefixlenIPr   freeifaddrsvalues)include_unconfiguredaddr0addrretvalenor%   nameip_addrnetmask
netmaskStrr<   tr$   r!   s                @r   get_adaptersrJ      s   *6>>'*,,ED__V\\$/0F{ c2;;s+,,

!
!
#C- Aw&&&8''Q(8(89Aw""47+>+>q+A+L+L48G4D4DQ4G4R4RQ##A&1++DG,?,?@G'5)wqz]
"44Y5J5J:5VW	?:A#AHHT!W-@-@$ABBzG34
%11*=GG	7It4B4#tT"Aw- 0 	U::<r   )F)
__future__r   r   r/   ctypes.utilr'   r-   r   r7    r   r   r   	Structurer	   r(   c_char_pc_uintsockaddr_fields_CDLLutilfind_libraryunamer)   rJ   r   r   r   <module>rW      s    7   	    	f 	
 ()!&-- 01NFNN6??34  v{{6;;++
18PHVYZfjk3r   