3
2
forked from Dniel97/artemis

sao: fix https

This commit is contained in:
Hay1tsme 2023-12-10 18:35:59 -05:00
parent 283cf41bce
commit 5491266a85
2 changed files with 19 additions and 7 deletions

View File

@ -29,6 +29,12 @@ class SaoServerConfig:
self.__config, "sao", "server", "auto_register", default=True self.__config, "sao", "server", "auto_register", default=True
) )
@property
def use_https(self) -> bool:
return CoreConfig.get_config_field(
self.__config, "sao", "server", "use_https", default=False
)
class SaoCryptConfig: class SaoCryptConfig:
def __init__(self, parent_config: "SaoConfig"): def __init__(self, parent_config: "SaoConfig"):
self.__config = parent_config self.__config = parent_config

View File

@ -76,13 +76,17 @@ class SaoServlet(BaseServlet):
return True return True
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]: def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
if not self.core_cfg.server.is_using_proxy and Utils.get_title_port_ssl(self.core_cfg) != 443: port_ssl = Utils.get_title_port_ssl(self.core_cfg)
return ( port_normal = Utils.get_title_port(self.core_cfg)
f"https://{self.core_cfg.title.hostname}:{Utils.get_title_port_ssl(self.core_cfg)}/",
f"{self.core_cfg.title.hostname}/",
)
return (f"http://{self.core_cfg.title.hostname}:{Utils.get_title_port(self.core_cfg)}/", "") proto = "http"
port = f":{port_normal}" if not self.core_cfg.server.is_using_proxy and port_normal != 80 else ""
if self.game_cfg.server.use_https:
proto = "https"
port = f":{port_ssl}" if not self.core_cfg.server.is_using_proxy and port_ssl != 443 else ""
return (f"{proto}://{self.core_cfg.title.hostname}{port}/", "")
def get_mucha_info(self, core_cfg: CoreConfig, cfg_dir: str) -> Tuple[bool, str]: def get_mucha_info(self, core_cfg: CoreConfig, cfg_dir: str) -> Tuple[bool, str]:
if not self.game_cfg.server.enable: if not self.game_cfg.server.enable:
@ -96,7 +100,9 @@ class SaoServlet(BaseServlet):
iv = b"" iv = b""
req_raw = request.content.read() req_raw = request.content.read()
sao_request = req_raw.hex() if len(req_raw) < 40:
self.logger.warn(f"Malformed request to {endpoint} - {req_raw.hex()}")
return b""
req_header = SaoRequestHeader(req_raw) req_header = SaoRequestHeader(req_raw)
cmd_str = f"{req_header.cmd:04x}" cmd_str = f"{req_header.cmd:04x}"