Minor refactoring, add a randomized port option
This commit is contained in:
parent
5805d5efcc
commit
d39f8224d4
1 changed files with 12 additions and 7 deletions
19
server.py
19
server.py
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
import os, sys, asyncio, re, signal, socket
|
import os, sys, asyncio, re, signal, socket, random
|
||||||
from platform import uname
|
from platform import uname
|
||||||
from traceback import format_exc
|
from traceback import format_exc
|
||||||
from logs import log
|
from logs import log
|
||||||
|
@ -74,6 +74,7 @@ Accepted arguments:
|
||||||
--hostname=<string> - Sets the hostname for this server to use when talking to other servers. Defaults to the current system's hostname (limit of 16 chars)
|
--hostname=<string> - Sets the hostname for this server to use when talking to other servers. Defaults to the current system's hostname (limit of 16 chars)
|
||||||
--address=<IP> - Sets the IP to listen on, defaults to all addresses (0.0.0.0)
|
--address=<IP> - Sets the IP to listen on, defaults to all addresses (0.0.0.0)
|
||||||
--cwlgd - Crashes the server when outbound links go down
|
--cwlgd - Crashes the server when outbound links go down
|
||||||
|
-r, --random-port - Randomizes the port to listen on
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
{filename} --hostname=Fun-chat --link=chat.example.com:65048 --port=92628
|
{filename} --hostname=Fun-chat --link=chat.example.com:65048 --port=92628
|
||||||
|
@ -84,17 +85,21 @@ Examples:
|
||||||
elif arg in ["-l", "--no-logs"]:
|
elif arg in ["-l", "--no-logs"]:
|
||||||
log("Explicitly disabling saving of logs!")
|
log("Explicitly disabling saving of logs!")
|
||||||
saveLogs = False
|
saveLogs = False
|
||||||
elif arg.startswith("--link"):
|
elif arg.startswith("--link="):
|
||||||
G.outboundLinks.append((arg[7:].split(":")[0], int(arg.split(":")[1])))
|
G.outboundLinks.append((arg[7:].split(":")[0], int(arg.split(":")[1])))
|
||||||
elif arg.startswith("--hostname"):
|
elif arg.startswith("--hostname="):
|
||||||
G.remoteID = arg[11:]
|
G.remoteID = arg[11:]
|
||||||
if not G.remoteID or len(G.remoteID) > 16:
|
if not G.remoteID or len(G.remoteID) > 16:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
elif arg.startswith("--address"):
|
elif arg.startswith("--address="):
|
||||||
address = arg[10:]
|
address = arg[10:]
|
||||||
elif arg.startswith("--cwlgd"):
|
elif arg in ["--cwlgd"]:
|
||||||
G.cwlgd = True
|
G.cwlgd = True
|
||||||
log("Server will crash when outbound links go down!", "WARN")
|
log("Server will crash when outbound links go down!", "WARN")
|
||||||
|
elif arg in ["-r", "--random-port"]
|
||||||
|
random.seed()
|
||||||
|
port = random.randint(10000, 60000)
|
||||||
|
log(f"Randomized port selected: {port}", "INFO")
|
||||||
else:
|
else:
|
||||||
log(f"Unrecognized argument {arg}!", "WARN")
|
log(f"Unrecognized argument {arg}!", "WARN")
|
||||||
except Exception:
|
except Exception:
|
||||||
|
@ -179,11 +184,11 @@ async def handleClient(reader, writer):
|
||||||
/afk [reason] - Optional reason, short hand for `/me is afk [to [reason]]`\r
|
/afk [reason] - Optional reason, short hand for `/me is afk [to [reason]]`\r
|
||||||
/h, /help - Triggers this command listing\r
|
/h, /help - Triggers this command listing\r
|
||||||
/back - Shorthand for `/me is back`\r
|
/back - Shorthand for `/me is back`\r
|
||||||
/stats - Sends you some server stats\r
|
/stat - Sends you some server stats\r
|
||||||
/quit - Disconnects you from the server\r\n"""
|
/quit - Disconnects you from the server\r\n"""
|
||||||
)
|
)
|
||||||
await writer.drain()
|
await writer.drain()
|
||||||
elif request.startswith("/stats"):
|
elif request.startswith("/stat"):
|
||||||
writer.write(
|
writer.write(
|
||||||
f"""Server stats:\r
|
f"""Server stats:\r
|
||||||
Linked servers: {len(G.servers)}\r
|
Linked servers: {len(G.servers)}\r
|
||||||
|
|
Loading…
Reference in a new issue