move win/gatuna-client to gatuna-win, rename project to gatuna

- Directory: win/gatuna-client/ -> gatuna-win/
- Project file: gatuna-client.csproj -> gatuna.csproj
- Assembly name: gatuna-client -> gatuna
- Root namespace: gatuna_client -> gatuna
- All .cs files: namespace gatuna_client -> gatuna
- app.manifest: assemblyIdentity name -> gatuna
- README: updated all paths and references
This commit is contained in:
2026-08-13 08:43:11 +00:00
parent 5bbda4c4c4
commit 2f61f2bb1b
9 changed files with 24 additions and 24 deletions
+15 -16
View File
@@ -19,8 +19,8 @@ pass unimpeded. See `wireguard-windows/tunnel/firewall/blocker.go:156`.
- **`gatunad`** — Rust server (`gatunad/`). Runs on the peer (Linux) that owns
the real services. Announces upstreams and relays TCP between the tunnel and
`127.0.0.1:<port>`.
- **`gatuna-client`** — .NET 8 WinForms client (`win/gatuna-client/`). Runs on
the killswitched Windows box. Discovers the server, presents its upstreams as
- **`gatuna`** — .NET 8 WinForms client (`gatuna-win/`). Runs on the
killswitched Windows box. Discovers the server, presents its upstreams as
local loopback listeners, and hauls bytes over the same L2 protocol. Includes
a network test (PING/PONG) for measuring latency, jitter, and loss.
@@ -65,9 +65,9 @@ sudo ./gatunad eth0 22 8800:site-a 8080:site-b
Exposes upstreams `1→127.0.0.1:22`, `2→127.0.0.1:8800` (label `site-a`),
`3→127.0.0.1:8080` (label `site-b`).
## `gatuna-client` usage
## `gatuna` usage
1. Launch `gatuna-client.exe` (UAC prompt expected — Npcap requires admin).
1. Launch `gatuna.exe` (UAC prompt expected — Npcap requires admin).
2. Select the network adapter connected to the same L2 segment as the server.
3. Click **Discover**. The server's hostname and MAC appear; the upstream list
populates.
@@ -105,13 +105,13 @@ The binary is at `gatunad/target/release/gatunad`.
### Build the client (Windows)
```powershell
cd win\gatuna-client
cd gatuna-win
dotnet build -c Release
```
Or run directly:
```powershell
dotnet run --project win\gatuna-client -c Release
dotnet run --project gatuna-win -c Release
```
### Npcap
@@ -168,16 +168,15 @@ gatuna/
│ ├── frame.rs # wire protocol encode/decode
│ ├── upstream.rs # cmdline parsing, hostname, upstream table
│ └── session.rs # session store, socket→tunnel pump
└── win/
── gatuna-client/ # .NET 8 WinForms client
├── gatuna-client.csproj
├── app.manifest # requireAdministrator
├── Program.cs # tray icon, entry point
├── MainForm.cs # UI: adapter picker, discover, test, upstream list
├── TunnelLink.cs # SharpPcap wrapper, raw Ethernet send/recv
├── Frame.cs # wire protocol encode/decode (mirrors Rust frame.rs)
├── SessionManager.cs # session lifecycle, listeners, OPEN serialization
└── PingTest.cs # PING/PONG network test with stats
└── gatuna-win/ # .NET 8 WinForms client
── gatuna.csproj
├── app.manifest # requireAdministrator
├── Program.cs # tray icon, entry point
├── MainForm.cs # UI: adapter picker, discover, test, upstream list
├── TunnelLink.cs # SharpPcap wrapper, raw Ethernet send/recv
├── Frame.cs # wire protocol encode/decode (mirrors Rust frame.rs)
├── SessionManager.cs # session lifecycle, listeners, OPEN serialization
└── PingTest.cs # PING/PONG network test with stats
```
## License