Compare commits
No commits in common. "d577928b3ad48ebd4383b5014ed6e6c3d7f3a5af" and "ee4bb1a1848accaa2e414fb97dbceb9203417ae5" have entirely different histories.
d577928b3a
...
ee4bb1a184
25
server.py
25
server.py
|
@ -3,32 +3,15 @@ import argparse
|
||||||
import logging
|
import logging
|
||||||
import socket
|
import socket
|
||||||
|
|
||||||
LOGGER = logging.getLogger(__name__)
|
LOGGER = logging.Logger(__name__)
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument("--address", help="The IPv6 address to bind")
|
parser.add_argument("host", help="The IPv6 address of the host to connect to.")
|
||||||
parser.add_argument("--port", "-p", default=50007, help="The port to connect to.")
|
parser.add_argument("--port", "-p", default=50007, help="The port to connect to.")
|
||||||
parser.add_argument("--verbose", action="store_true", help="Verbose logging")
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
logging.basicConfig(
|
addresses = [addr for addr in socket.getaddrinfo(host=args.host, port=args.port, family=socket.AF_INET6, type=socket.SOCK_STREAM, proto=0, flags=0)]
|
||||||
format="%(asctime)s %(message)s",
|
|
||||||
level=logging.DEBUG if args.verbose else logging.INFO,
|
|
||||||
)
|
|
||||||
|
|
||||||
hostname = socket.gethostname()
|
|
||||||
addresses = []
|
|
||||||
for interface in socket.if_nameindex():
|
|
||||||
interface_name = interface[1]
|
|
||||||
LOGGER.debug("Found interface %s", interface_name)
|
|
||||||
try:
|
|
||||||
addrs = socket.getaddrinfo(host=hostname, port=80, family=socket.AF_INET6)
|
|
||||||
for addr in addrs:
|
|
||||||
addresses.append((interface_name, addr[4][0]))
|
|
||||||
except socket.gaierror:
|
|
||||||
LOGGER.info("Interfare '%s' has no IPv6 addresses", interface_name)
|
|
||||||
addresses = [addr for addr in socket.getaddrinfo(host=args.address, port=args.port, family=socket.AF_INET6, type=socket.SOCK_STREAM, proto=0, flags=0)]
|
|
||||||
if not addresses:
|
if not addresses:
|
||||||
raise ValueError("Couldn't find ipv6 address for source %s" % source_ip)
|
raise ValueError("Couldn't find ipv6 address for source %s" % source_ip)
|
||||||
if len(addresses) > 1:
|
if len(addresses) > 1:
|
||||||
|
@ -57,7 +40,7 @@ def bind_socket(family, type_, proto, canonname, sockaddr):
|
||||||
while True:
|
while True:
|
||||||
data = conn.recv(1024)
|
data = conn.recv(1024)
|
||||||
if not data: break
|
if not data: break
|
||||||
conn.send(("Hey " + data.decode("UTF-8").encode("UTF-8"))
|
conn.send(data)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
Loading…
Reference in New Issue