fe2e531b0cff5ccce5123cb009ca779e403d65de
`STAGING_FUT_BASE` hardcoded `http://10.10.0.120:8110/fut/` into the hook binary, so the base-supply rewriter only worked on one machine and could not be merged. The prefix now comes from the same `openfut.cfg` / `openfut-common` source of truth as every redirect target: `fut_content_base()` builds `http://<host>:<fut_content_port>/fut/` from the configured host. `OpenFutPorts` gains `fut_content` with a named default (`default_ports::FUT_CONTENT = 8110`) and an optional `fut_content_port=` key, matching how every other OpenFUT port is already handled. A cfg written before the key existed still parses and takes the default — failing it would disarm the network redirect too. Arming fails SAFE: an absent or unusable config arms nothing and the rewriter leaves every url exactly as the client built it, rather than pointing it at a guessed host. This also adds the `openfut-common` dependency to the hook on this branch; main already has it. Proof: the cross-built artifact no longer contains the string 10.10.0.120 (previously compiled in), openfut-common is green at 16 tests including the new config-derived-base and backward-compatibility cases, and the launcher builds.
Description
GUI launcher for OpenFUT — manages core/bridge services, DLL hook deployment, and TLS cert setup
Languages
Rust
100%