mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-15 00:52:04 +00:00
feat: validate allocated server compatibility
This commit is contained in:
@@ -263,7 +263,7 @@ func _validate() -> void:
|
|||||||
if String(values[key]).is_empty():
|
if String(values[key]).is_empty():
|
||||||
errors.append("--allocated-mode requires --%s" % key)
|
errors.append("--allocated-mode requires --%s" % key)
|
||||||
var digest := String(values["server-image-digest"])
|
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>")
|
errors.append("--server-image-digest must be sha256:<64 hex characters>")
|
||||||
var transport := String(values["transport"])
|
var transport := String(values["transport"])
|
||||||
if not transport in ["steam_sdr", "enet"]:
|
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)
|
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:
|
static func _kind_name(kind: int) -> String:
|
||||||
match kind:
|
match kind:
|
||||||
Kind.BOOL: return "bool"
|
Kind.BOOL: return "bool"
|
||||||
|
|||||||
Reference in New Issue
Block a user