/
usr
/
lib
/
python3
/
dist-packages
/
twisted
/
internet
/
test
/
/usr/lib/python3/dist-packages/twisted/internet/test
mkdir
upload
Name
Size
Mode
Actions
fake_CAs/
-
0755
rm
__pycache__/
-
0755
rm
connectionmixins.py
20184
0644
edit
dl
rm
fakeendpoint.py
1663
0644
edit
dl
rm
modulehelpers.py
1672
0644
edit
dl
rm
process_cli.py
547
0644
edit
dl
rm
process_connectionlost.py
126
0644
edit
dl
rm
process_gireactornocompat.py
816
0644
edit
dl
rm
process_helper.py
1282
0644
edit
dl
rm
reactormixins.py
14609
0644
edit
dl
rm
test_abstract.py
1976
0644
edit
dl
rm
test_address.py
8266
0644
edit
dl
rm
test_asyncioreactor.py
9327
0644
edit
dl
rm
test_base.py
13684
0644
edit
dl
rm
test_baseprocess.py
2588
0644
edit
dl
rm
test_core.py
11125
0644
edit
dl
rm
test_default.py
3419
0644
edit
dl
rm
test_defer_await.py
6514
0644
edit
dl
rm
test_defer_yieldfrom.py
4848
0644
edit
dl
rm
test_endpoints.py
148720
0644
edit
dl
rm
test_epollreactor.py
7322
0644
edit
dl
rm
test_error.py
1090
0644
edit
dl
rm
test_fdset.py
13497
0644
edit
dl
rm
test_filedescriptor.py
2761
0644
edit
dl
rm
test_gireactor.py
6516
0644
edit
dl
rm
test_glibbase.py
2217
0644
edit
dl
rm
test_inlinecb.py
11482
0644
edit
dl
rm
test_inotify.py
18562
0644
edit
dl
rm
test_iocp.py
7700
0644
edit
dl
rm
test_kqueuereactor.py
1853
0644
edit
dl
rm
test_main.py
1331
0644
edit
dl
rm
test_newtls.py
6532
0644
edit
dl
rm
test_pollingfile.py
1297
0644
edit
dl
rm
test_posixbase.py
9718
0644
edit
dl
rm
test_posixprocess.py
11203
0644
edit
dl
rm
test_process.py
36732
0644
edit
dl
rm
test_protocol.py
18520
0644
edit
dl
rm
test_resolver.py
19610
0644
edit
dl
rm
test_serialport.py
1988
0644
edit
dl
rm
test_sigchld.py
3922
0644
edit
dl
rm
test_socket.py
9443
0644
edit
dl
rm
test_stdio.py
6597
0644
edit
dl
rm
test_tcp.py
106621
0644
edit
dl
rm
test_testing.py
16239
0644
edit
dl
rm
test_threads.py
8734
0644
edit
dl
rm
test_time.py
3758
0644
edit
dl
rm
test_tls.py
13349
0644
edit
dl
rm
test_udp.py
16881
0644
edit
dl
rm
test_udp_internals.py
4837
0644
edit
dl
rm
test_unix.py
34854
0644
edit
dl
rm
test_win32events.py
6473
0644
edit
dl
rm
test_win32serialport.py
5330
0644
edit
dl
rm
_posixifaces.py
4391
0644
edit
dl
rm
_win32ifaces.py
3975
0644
edit
dl
rm
__init__.py
112
0644
edit
dl
rm
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]
Save
cmd:
run