From dba6fc1f58710269a3a130a5df45373a95ff5662 Mon Sep 17 00:00:00 2001 From: veto9292 Date: Thu, 2 Jul 2026 14:49:42 +0330 Subject: [PATCH] test: point hiddify-sing-box at testing-merge-base, fix RedirectStderr Bump hiddify-sing-box submodule from extended (3a1c923e) to testing-merge-base (e3bef924), matching the branch ray2sing's latest amnezia/AWG commit (caf5e9a) is already written against. testing-merge-base removed libbox.RedirectStderr (made private, see d4dacfc4 "Add OOM Report & Crash Report"). Reimplement it locally in one shared file instead of three duplicated per-OS copies; Windows keeps its own no-op. Co-Authored-By: Claude Sonnet 4.6 --- hiddify-sing-box | 2 +- v2/hutils/andorid_utils.go | 9 --------- v2/hutils/crashlog_utils.go | 27 +++++++++++++++++++++++++++ v2/hutils/darwin_utils.go | 9 --------- v2/hutils/linux_utils.go | 5 ----- 5 files changed, 28 insertions(+), 24 deletions(-) delete mode 100644 v2/hutils/andorid_utils.go create mode 100644 v2/hutils/crashlog_utils.go delete mode 100644 v2/hutils/darwin_utils.go diff --git a/hiddify-sing-box b/hiddify-sing-box index 3a1c923e3..e3bef924d 160000 --- a/hiddify-sing-box +++ b/hiddify-sing-box @@ -1 +1 @@ -Subproject commit 3a1c923e306d5b39cde8f2c02ec9dd556ea112d3 +Subproject commit e3bef924dbe59af600a7850e98df31ed58ab1c3f diff --git a/v2/hutils/andorid_utils.go b/v2/hutils/andorid_utils.go deleted file mode 100644 index d02b3be36..000000000 --- a/v2/hutils/andorid_utils.go +++ /dev/null @@ -1,9 +0,0 @@ -//go:build android - -package hutils - -import "github.com/sagernet/sing-box/experimental/libbox" - -func RedirectStderr(path string) error { - return libbox.RedirectStderr(path) -} diff --git a/v2/hutils/crashlog_utils.go b/v2/hutils/crashlog_utils.go new file mode 100644 index 000000000..9231ee03b --- /dev/null +++ b/v2/hutils/crashlog_utils.go @@ -0,0 +1,27 @@ +//go:build darwin || linux || android + +package hutils + +import ( + "os" + "runtime/debug" +) + +// RedirectStderr writes Go crash reports into path so they survive with no +// terminal attached. Reimplemented locally after libbox.RedirectStderr became +// private upstream. Windows has its own no-op variant. +func RedirectStderr(path string) error { + if stats, err := os.Stat(path); err == nil && stats.Size() > 0 { + _ = os.Rename(path, path+".old") + } + outputFile, err := os.Create(path) + if err != nil { + return err + } + if err = debug.SetCrashOutput(outputFile, debug.CrashOptions{}); err != nil { + outputFile.Close() + os.Remove(outputFile.Name()) + return err + } + return nil +} diff --git a/v2/hutils/darwin_utils.go b/v2/hutils/darwin_utils.go deleted file mode 100644 index 9924419dd..000000000 --- a/v2/hutils/darwin_utils.go +++ /dev/null @@ -1,9 +0,0 @@ -//go:build darwin - -package hutils - -import "github.com/sagernet/sing-box/experimental/libbox" - -func RedirectStderr(path string) error { - return libbox.RedirectStderr(path) -} diff --git a/v2/hutils/linux_utils.go b/v2/hutils/linux_utils.go index e58270915..dff64e82f 100644 --- a/v2/hutils/linux_utils.go +++ b/v2/hutils/linux_utils.go @@ -9,14 +9,9 @@ import ( "path/filepath" "strings" - "github.com/sagernet/sing-box/experimental/libbox" "golang.org/x/sys/unix" ) -func RedirectStderr(path string) error { - return libbox.RedirectStderr(path) -} - func IsAdmin() bool { return os.Getuid() == 0 }