/usr/lib/python3/dist-packages/twisted/internet/test
NameSizeModeActions
fake_CAs/-0755rm
__pycache__/-0755rm
connectionmixins.py201840644editdlrm
fakeendpoint.py16630644editdlrm
modulehelpers.py16720644editdlrm
process_cli.py5470644editdlrm
process_connectionlost.py1260644editdlrm
process_gireactornocompat.py8160644editdlrm
process_helper.py12820644editdlrm
reactormixins.py146090644editdlrm
test_abstract.py19760644editdlrm
test_address.py82660644editdlrm
test_asyncioreactor.py93270644editdlrm
test_base.py136840644editdlrm
test_baseprocess.py25880644editdlrm
test_core.py111250644editdlrm
test_default.py34190644editdlrm
test_defer_await.py65140644editdlrm
test_defer_yieldfrom.py48480644editdlrm
test_endpoints.py1487200644editdlrm
test_epollreactor.py73220644editdlrm
test_error.py10900644editdlrm
test_fdset.py134970644editdlrm
test_filedescriptor.py27610644editdlrm
test_gireactor.py65160644editdlrm
test_glibbase.py22170644editdlrm
test_inlinecb.py114820644editdlrm
test_inotify.py185620644editdlrm
test_iocp.py77000644editdlrm
test_kqueuereactor.py18530644editdlrm
test_main.py13310644editdlrm
test_newtls.py65320644editdlrm
test_pollingfile.py12970644editdlrm
test_posixbase.py97180644editdlrm
test_posixprocess.py112030644editdlrm
test_process.py367320644editdlrm
test_protocol.py185200644editdlrm
test_resolver.py196100644editdlrm
test_serialport.py19880644editdlrm
test_sigchld.py39220644editdlrm
test_socket.py94430644editdlrm
test_stdio.py65970644editdlrm
test_tcp.py1066210644editdlrm
test_testing.py162390644editdlrm
test_threads.py87340644editdlrm
test_time.py37580644editdlrm
test_tls.py133490644editdlrm
test_udp.py168810644editdlrm
test_udp_internals.py48370644editdlrm
test_unix.py348540644editdlrm
test_win32events.py64730644editdlrm
test_win32serialport.py53300644editdlrm
_posixifaces.py43910644editdlrm
_win32ifaces.py39750644editdlrm
__init__.py1120644editdlrm
Edit: /usr/lib/python3/dist-packages/twisted/internet/test/_win32ifaces.py (3975B)
# Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. """ Windows implementation of local network interface enumeration. """ from ctypes import ( # type: ignore[attr-defined] POINTER, Structure, WinDLL, byref, c_int, c_void_p, cast, create_string_buffer, create_unicode_buffer, wstring_at, ) from socket import AF_INET6, SOCK_STREAM, socket WS2_32 = WinDLL("ws2_32") SOCKET = c_int DWORD = c_int LPVOID = c_void_p LPSOCKADDR = c_void_p LPWSAPROTOCOL_INFO = c_void_p LPTSTR = c_void_p LPDWORD = c_void_p LPWSAOVERLAPPED = c_void_p LPWSAOVERLAPPED_COMPLETION_ROUTINE = c_void_p # http://msdn.microsoft.com/en-us/library/ms741621(v=VS.85).aspx # int WSAIoctl( # __in SOCKET s, # __in DWORD dwIoControlCode, # __in LPVOID lpvInBuffer, # __in DWORD cbInBuffer, # __out LPVOID lpvOutBuffer, # __in DWORD cbOutBuffer, # __out LPDWORD lpcbBytesReturned, # __in LPWSAOVERLAPPED lpOverlapped, # __in LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine # ); WSAIoctl = WS2_32.WSAIoctl WSAIoctl.argtypes = [ SOCKET, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE, ] WSAIoctl.restype = c_int # http://msdn.microsoft.com/en-us/library/ms741516(VS.85).aspx # INT WSAAPI WSAAddressToString( # __in LPSOCKADDR lpsaAddress, # __in DWORD dwAddressLength, # __in_opt LPWSAPROTOCOL_INFO lpProtocolInfo, # __inout LPTSTR lpszAddressString, # __inout LPDWORD lpdwAddressStringLength # ); WSAAddressToString = WS2_32.WSAAddressToStringW WSAAddressToString.argtypes = [LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFO, LPTSTR, LPDWORD] WSAAddressToString.restype = c_int SIO_ADDRESS_LIST_QUERY = 0x48000016 WSAEFAULT = 10014 class SOCKET_ADDRESS(Structure): _fields_ = [("lpSockaddr", c_void_p), ("iSockaddrLength", c_int)] def make_SAL(ln): class SOCKET_ADDRESS_LIST(Structure): _fields_ = [("iAddressCount", c_int), ("Address", SOCKET_ADDRESS * ln)] return SOCKET_ADDRESS_LIST def win32GetLinkLocalIPv6Addresses(): """ 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}. """ s = socket(AF_INET6, SOCK_STREAM) size = 4096 retBytes = c_int() for i in range(2): buf = create_string_buffer(size) ret = WSAIoctl( s.fileno(), SIO_ADDRESS_LIST_QUERY, 0, 0, buf, size, byref(retBytes), 0, 0 ) # WSAIoctl might fail with WSAEFAULT, which means there was not enough # space in the buffer we gave it. There's no way to check the errno # until Python 2.6, so we don't even try. :/ Maybe if retBytes is still # 0 another error happened, though. if ret and retBytes.value: size = retBytes.value else: break # If it failed, then we'll just have to give up. Still no way to see why. if ret: raise RuntimeError("WSAIoctl failure") addrList = cast(buf, POINTER(make_SAL(0))) addrCount = addrList[0].iAddressCount addrList = cast(buf, POINTER(make_SAL(addrCount))) addressStringBufLength = 1024 addressStringBuf = create_unicode_buffer(addressStringBufLength) retList = [] for i in range(addrList[0].iAddressCount): retBytes.value = addressStringBufLength address = addrList[0].Address[i] ret = WSAAddressToString( address.lpSockaddr, address.iSockaddrLength, 0, addressStringBuf, byref(retBytes), ) if ret: raise RuntimeError("WSAAddressToString failure") retList.append(wstring_at(addressStringBuf)) return [addr for addr in retList if "%" in addr]