[Bugfix][API Server] Fix invalid usage of 'ge' and 'le' in port valid… (#13672)

This commit is contained in:
Robin
2025-02-22 14:05:28 +08:00
committed by GitHub
parent 0ffdf8ce0c
commit c6ed93860f
2 changed files with 12 additions and 1 deletions

View File

@ -145,7 +145,7 @@ async def run_server(args: Namespace,
if __name__ == "__main__":
parser = FlexibleArgumentParser()
parser.add_argument("--host", type=str, default=None)
parser.add_argument("--port", type=int, default=8000, ge=1024, le=65535)
parser.add_argument("--port", type=parser.check_port, default=8000)
parser.add_argument("--ssl-keyfile", type=str, default=None)
parser.add_argument("--ssl-certfile", type=str, default=None)
parser.add_argument("--ssl-ca-certs",

View File

@ -1194,6 +1194,17 @@ class FlexibleArgumentParser(argparse.ArgumentParser):
return super().parse_args(processed_args, namespace)
def check_port(self, value):
try:
value = int(value)
except ValueError:
raise argparse.ArgumentTypeError("Port must be an integer")
if not (1024 <= value <= 65535):
raise argparse.ArgumentTypeError("Port must be between 1024 and 65535")
return value
def _pull_args_from_config(self, args: List[str]) -> List[str]:
"""Method to pull arguments specified in the config file
into the command-line args variable.