Island: Remove disused local_ips() functions

This commit is contained in:
Mike Salvatore 2022-09-12 11:48:36 -04:00
parent 4bc9f735be
commit 285e6aaa35
1 changed files with 0 additions and 48 deletions

View File

@ -1,57 +1,9 @@
import array
import ipaddress
import socket
import struct
import sys
from typing import Sequence
from netifaces import AF_INET, ifaddresses, interfaces
from ring import lru
# Local ips function
# TODO: I can't find anywhere these are actually used. Confirm this is the case, remove these
# functions, and test.
if sys.platform == "win32":
def local_ips():
local_hostname = socket.gethostname()
return socket.gethostbyname_ex(local_hostname)[2]
else:
import fcntl
def local_ips():
result = []
try:
is_64bits = sys.maxsize > 2**32
struct_size = 40 if is_64bits else 32
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
max_possible = 8 # initial value
while True:
struct_bytes = max_possible * struct_size
names = array.array("B", "\0" * struct_bytes)
outbytes = struct.unpack(
"iL",
fcntl.ioctl(
s.fileno(),
0x8912, # SIOCGIFCONF
struct.pack("iL", struct_bytes, names.buffer_info()[0]),
),
)[0]
if outbytes == struct_bytes:
max_possible *= 2
else:
break
namestr = names.tostring()
for i in range(0, outbytes, struct_size):
addr = socket.inet_ntoa(namestr[i + 20 : i + 24])
if not addr.startswith("127"):
result.append(addr)
# name of interface is (namestr[i:i+16].split('\0', 1)[0]
finally:
return result
# The local IP addresses list should not change often. Therefore, we can cache the result and never
# call this function more than once. This stopgap measure is here since this function is called a