Release 1.3.1: fix hy2 UDP ping and shop link open.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Navis
2026-07-28 07:33:26 +03:00
co-authored by Cursor
parent 5d2cb6d76a
commit f7fded5b40
11 changed files with 163 additions and 29 deletions
+31 -3
View File
@@ -360,17 +360,45 @@ func (a *app) autoCheckUpdate() {
func openURL(raw string) error {
raw = strings.TrimSpace(raw)
switch raw {
case "https://evilfox.win/", "https://evilfox.win", "http://evilfox.win/", "http://evilfox.win":
if raw == "" {
return fmt.Errorf("пустая ссылка")
}
lower := strings.ToLower(raw)
switch {
case lower == "https://evilfox.win/" || lower == "https://evilfox.win" ||
lower == "http://evilfox.win/" || lower == "http://evilfox.win":
raw = "https://evilfox.win/"
case strings.HasPrefix(lower, "https://evilfox.win/") || strings.HasPrefix(lower, "http://evilfox.win/"):
// allow shop deep-links on evilfox.win only
default:
return fmt.Errorf("разрешена только ссылка evilfox.win")
}
cmd := exec.Command("rundll32", "url.dll,FileProtocolHandler", raw)
if err := shellOpen(raw); err == nil {
return nil
}
// Fallbacks when ShellExecute is blocked by policy.
cmd := exec.Command("cmd", "/c", "start", "", raw)
cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
if err := cmd.Start(); err == nil {
return nil
}
cmd = exec.Command("rundll32", "url.dll,FileProtocolHandler", raw)
cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
return cmd.Start()
}
func shellOpen(raw string) error {
verb, err := windows.UTF16PtrFromString("open")
if err != nil {
return err
}
file, err := windows.UTF16PtrFromString(raw)
if err != nil {
return err
}
return windows.ShellExecute(0, verb, file, nil, nil, windows.SW_SHOWNORMAL)
}
func applyWindowIcon(hwnd unsafe.Pointer) {
ico := findIconPath()
if ico == "" || hwnd == nil {