The client sends it every HTTP request and its IMQ connection; it makes them with current TLS and certificates, upgrades IMVU's plain-HTTP hosts to HTTPS, and refuses IMVU's reporting endpoints. CI tests it and publishes t5de-proxy.exe as nightlies and tagged releases. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
commit
2551888ed6
19 files changed
+1498
No files matched your search
@@ -0,0 +1,7 @@
|
||||
// Package parent watches the process that started the proxy, so the proxy exits with it.
|
||||
package parent
|
||||
|
||||
// Wait returns once the process pid has exited (at once if it already has, or can't be watched).
|
||||
func Wait(pid int) error {
|
||||
return wait(pid)
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
//go:build !windows
|
||||
|
||||
package parent
|
||||
|
||||
import (
|
||||
"os"
|
||||
"syscall"
|
||||
"time"
|
||||
)
|
||||
|
||||
// wait polls: the client only runs on Windows; this is for running the proxy's tests and tools elsewhere.
|
||||
func wait(pid int) error {
|
||||
p, err := os.FindProcess(pid)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for p.Signal(syscall.Signal(0)) == nil {
|
||||
time.Sleep(time.Second)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package parent
|
||||
|
||||
import "syscall"
|
||||
|
||||
func wait(pid int) error {
|
||||
h, err := syscall.OpenProcess(syscall.SYNCHRONIZE, false, uint32(pid))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer syscall.CloseHandle(h)
|
||||
_, err = syscall.WaitForSingleObject(h, syscall.INFINITE)
|
||||
return err
|
||||
}
|
||||
Reference in new issue
Block a user