summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhovertank3d <[email protected]>2026-02-23 03:05:12 +0100
committerhovertank3d <[email protected]>2026-02-23 03:05:12 +0100
commit6c79fe43fe2d6bbbb2808777e5553a7360b37d22 (patch)
tree2424694c6da8807a3447d05e9f4c8057042d14a2 /src
parentbf1a13611b05350a71807be9a7cc384f11737b2b (diff)
downloadogurec-6c79fe43fe2d6bbbb2808777e5553a7360b37d22.tar.gz
ogurec-6c79fe43fe2d6bbbb2808777e5553a7360b37d22.zip
revert to being a raw proxy
Diffstat (limited to 'src')
-rw-r--r--src/kill_proxy.cpp31
1 files changed, 6 insertions, 25 deletions
diff --git a/src/kill_proxy.cpp b/src/kill_proxy.cpp
index 4e0ecd1..aaaa795 100644
--- a/src/kill_proxy.cpp
+++ b/src/kill_proxy.cpp
@@ -1,21 +1,9 @@
#include <cstdint>
-#include <span>
#include <thread>
#include "net/client.hpp"
#include "net/conn.hpp"
#include "net/server.hpp"
-#include "net/types.hpp"
-
-void forward_packets(net::conn& dst, net::conn& src)
-{
- for (int i = 1; i < 255; i++) {
- src.reg_handler(i, [&dst, i](std::span<uint8_t> data) {
- dst.send_packet(i, data);
- return true;
- });
- }
-}
int main(int argc, char* argv[])
{
@@ -28,23 +16,16 @@ int main(int argc, char* argv[])
auto server_conn = server.connect();
auto proxy_conn = proxy.accept();
- uint8_t slot;
- server_conn.reg_handler<net::packet::accept>([&slot](auto& a) {
- slot = a.client_id;
- return false;
- });
-
- forward_packets(server_conn, proxy_conn);
- forward_packets(proxy_conn, server_conn);
-
- auto handle_loop = [](net::conn& c) {
+ auto handle_loop = [](net::conn& src, net::conn& dst) {
for (;;) {
- c.handle();
+ src.handle([&dst] (uint8_t id, std::span<uint8_t> payload) {
+ dst.send_packet(id, payload);
+ });
}
};
- std::thread server_thread(handle_loop, std::ref(server_conn));
- std::thread proxy_thread(handle_loop, std::ref(proxy_conn));
+ std::thread server_thread(handle_loop, std::ref(server_conn), std::ref(proxy_conn));
+ std::thread proxy_thread(handle_loop, std::ref(proxy_conn), std::ref(server_conn));
while (1) {
}