summaryrefslogtreecommitdiff
path: root/src/kill_proxy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kill_proxy.cpp')
-rw-r--r--src/kill_proxy.cpp37
1 files changed, 14 insertions, 23 deletions
diff --git a/src/kill_proxy.cpp b/src/kill_proxy.cpp
index e72848f..4e0ecd1 100644
--- a/src/kill_proxy.cpp
+++ b/src/kill_proxy.cpp
@@ -1,3 +1,5 @@
+#include <cstdint>
+#include <span>
#include <thread>
#include "net/client.hpp"
@@ -5,14 +7,14 @@
#include "net/server.hpp"
#include "net/types.hpp"
-template <typename T, T... ints>
-void forward_packets(net::conn& dst, net::conn& src, std::integer_sequence<T, ints...> int_seq)
+void forward_packets(net::conn& dst, net::conn& src)
{
- (src.reg_handler<net::packet::raw<ints+1>>([&dst](auto& a) {
- dst.send_packet(a);
- return true;
- }),
- ...);
+ 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[])
@@ -32,22 +34,8 @@ int main(int argc, char* argv[])
return false;
});
- proxy_conn.reg_handler<net::packet::damage_player>([&slot, &server_conn](auto& dmg) {
- if (dmg.client_id != slot) {
- dmg.damage *= 100;
- dmg.reason.reasons.at(0) = 0;
-
- dmg.reason.reasons[net::packet::death_reason::reason::Custom] = true;
- dmg.reason.custom = "killed by server insecurity";
-
- server_conn.send_packet(dmg);
- return true;
- }
- return false;
- });
-
- forward_packets(server_conn, proxy_conn, std::make_integer_sequence<uint8_t, 255> {});
- forward_packets(proxy_conn, server_conn, std::make_integer_sequence<uint8_t, 255> {});
+ forward_packets(server_conn, proxy_conn);
+ forward_packets(proxy_conn, server_conn);
auto handle_loop = [](net::conn& c) {
for (;;) {
@@ -58,5 +46,8 @@ int main(int argc, char* argv[])
std::thread server_thread(handle_loop, std::ref(server_conn));
std::thread proxy_thread(handle_loop, std::ref(proxy_conn));
+ while (1) {
+ }
+
return 0;
} \ No newline at end of file