Remove legacy steamcmd and SCUM runtime coupling
This commit is contained in:
@@ -24,7 +24,7 @@ const (
|
||||
ue4ssExtensionMarkerVersion = 2
|
||||
maxUE4SSMetadataBytes int64 = 16 * 1024
|
||||
maxUE4SSDLLBytes int64 = 128 * 1024 * 1024
|
||||
maxSCUMExecutableBytes int64 = 2 * 1024 * 1024 * 1024
|
||||
maxTargetExecutableBytes int64 = 2 * 1024 * 1024 * 1024
|
||||
managedRCONConfigMarker = "; managed by Run UE4SS DLL extension"
|
||||
)
|
||||
|
||||
@@ -56,7 +56,7 @@ func (executor LifecycleExecutor) synchronizeUE4SSDLLExtensions(ctx context.Cont
|
||||
}
|
||||
executableKey := template.TargetExecutableKey
|
||||
// Older generated plugin packages do not have targetExecutableKey yet,
|
||||
// but SCUM's existing start action already carries the same logical path
|
||||
// but the existing start action already carries the same logical path
|
||||
// in SERVER_EXECUTABLE_REF. Keep those packages forward-compatible.
|
||||
if executableKey == "" && template.Environment != nil {
|
||||
executableKey = template.Environment["SERVER_EXECUTABLE_REF"]
|
||||
@@ -68,7 +68,7 @@ func (executor LifecycleExecutor) synchronizeUE4SSDLLExtensions(ctx context.Cont
|
||||
executableKey = template.ExecutableKey
|
||||
}
|
||||
if executableKey == "" || !strings.HasSuffix(strings.ToLower(executableKey), ".exe") {
|
||||
return dllExtensionError{code: "extension_scum_executable_invalid", message: "UE4SS DLL extensions require a declared SCUM executable"}
|
||||
return dllExtensionError{code: "extension_target_executable_invalid", message: "UE4SS DLL extensions require a declared target executable"}
|
||||
}
|
||||
|
||||
resolver := NewWorkspaceResolver(executor.workspaceRoot)
|
||||
@@ -76,28 +76,28 @@ func (executor LifecycleExecutor) synchronizeUE4SSDLLExtensions(ctx context.Cont
|
||||
if deployment := assignment.ExecutionInput.Deployment; deployment != nil && deployment.ServerRoot != "" {
|
||||
root := filepath.Clean(deployment.ServerRoot)
|
||||
if root == "." || !filepath.IsAbs(root) {
|
||||
return dllExtensionError{code: "extension_scum_executable_invalid", message: "declared executable root is unsafe"}
|
||||
return dllExtensionError{code: "extension_target_executable_invalid", message: "declared executable root is unsafe"}
|
||||
}
|
||||
targetResolver = NewWorkspaceResolver(filepath.Dir(root))
|
||||
targetScope = root
|
||||
}
|
||||
executable, err := declaredLifecycleExecutable(targetResolver, targetScope, executableKey)
|
||||
if err != nil {
|
||||
return dllExtensionError{code: "extension_scum_executable_invalid", message: "declared SCUM executable is unavailable"}
|
||||
return dllExtensionError{code: "extension_target_executable_invalid", message: "declared target executable is unavailable"}
|
||||
}
|
||||
executableChecksum, _, err := checksumRegularFile(executable, maxSCUMExecutableBytes)
|
||||
executableChecksum, _, err := checksumRegularFile(executable, maxTargetExecutableBytes)
|
||||
if err != nil {
|
||||
return dllExtensionError{code: "extension_scum_executable_invalid", message: "declared SCUM executable cannot be verified"}
|
||||
return dllExtensionError{code: "extension_target_executable_invalid", message: "declared target executable cannot be verified"}
|
||||
}
|
||||
for _, plan := range assignment.ExecutionInput.DLLExtensions {
|
||||
if !strings.EqualFold(executableChecksum, plan.SCUMExecutableChecksum) {
|
||||
return dllExtensionError{code: "extension_scum_checksum_mismatch", message: "declared SCUM executable does not match the extension release"}
|
||||
if !strings.EqualFold(executableChecksum, plan.TargetExecutableChecksum) {
|
||||
return dllExtensionError{code: "extension_target_checksum_mismatch", message: "declared target executable does not match the extension release"}
|
||||
}
|
||||
}
|
||||
|
||||
gameRootKey, err := gameRootKeyForExecutable(template.ExecutableKey)
|
||||
if err != nil {
|
||||
return dllExtensionError{code: "extension_scum_executable_invalid", message: "declared SCUM executable location is unsafe"}
|
||||
return dllExtensionError{code: "extension_target_executable_invalid", message: "declared target executable location is unsafe"}
|
||||
}
|
||||
if err := verifyUE4SSBootstrap(targetResolver, targetScope, gameRootKey); err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user