diff --git a/Game/scripts/server_config.gd b/Game/scripts/server_config.gd index b9264e5d..0867b3e8 100644 --- a/Game/scripts/server_config.gd +++ b/Game/scripts/server_config.gd @@ -263,7 +263,7 @@ func _validate() -> void: if String(values[key]).is_empty(): errors.append("--allocated-mode requires --%s" % key) var digest := String(values["server-image-digest"]) - if not digest.begins_with("sha256:") or digest.length() != 71: + if not _is_sha256_digest(digest): errors.append("--server-image-digest must be sha256:<64 hex characters>") var transport := String(values["transport"]) if not transport in ["steam_sdr", "enet"]: @@ -273,6 +273,15 @@ func _validate() -> void: errors.append("--region must be EU or NA, got '%s'" % region) +static func _is_sha256_digest(value: String) -> bool: + if not value.begins_with("sha256:") or value.length() != 71: + return false + for c in value.substr(7): + if not c.to_lower() in "0123456789abcdef": + return false + return true + + static func _kind_name(kind: int) -> String: match kind: Kind.BOOL: return "bool"