added a udp redirecter since sourcemod one only handles 127.0.0.1 seemingly

This commit is contained in:
christian 2021-06-17 22:17:19 +02:00
parent 119463756e
commit efb1dbe183
3 changed files with 46 additions and 7 deletions

View File

@ -144,6 +144,7 @@ if __name__ == '__main__':
while True:
data, addr = sock.recvfrom(buffer_size)
data = codecs.decode(data, "utf-8", "ignore")
print(data)
ip = addr[0]
port = addr[1]
#print('port: ', port, " ip: ", ip)

View File

@ -0,0 +1,42 @@
import os
import sys
import subprocess
import atexit
from threading import Timer
import string
import random
import signal
import socket
import codecs
import datetime
import time
if __name__ == '__main__':
local_ip = "127.0.0.1"
local_port = 48479
udp_external_ip = "164.132.201.173"
buffer_size = 4096 #potentially not large enough?
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock_external = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(("", local_port))
print('reached deadlock')
try:
while True:
data, addr = sock.recvfrom(buffer_size)
data = codecs.decode(data, "utf-8", "ignore")
ip = addr[0]
port = addr[1]
#print('port: ', port, " ip: ", ip)
#print(data)
if not data or ip != local_ip:
continue
sock_external.sendto(data.encode(), (udp_external_ip, local_port))
except KeyboardInterrupt:
pass
finally:
sock.close()
sock_external.close()
#UDP redirecter welp
#screen -d -m -S udp_redirecter python3 udp_redirecter.py

View File

@ -215,18 +215,14 @@ public void OnMapStart()
public void send_socket_msg(char[] query_msg, int len)
{
char server_ip[generic_length];
Format(server_ip, sizeof(server_ip), "164.132.201.173");
if (global_socket != INVALID_HANDLE && SocketIsConnected(global_socket))
SocketSendTo(global_socket, query_msg, len, server_ip, 48479); //udp
SocketSendTo(global_socket, query_msg, len, "127.0.0.1", 48479); //udp
}
public void send_socket_msg1(char[] query_msg, int len)
{
char server_ip[generic_length];
Format(server_ip, sizeof(server_ip), "164.132.201.173");
if (global_socket != INVALID_HANDLE && SocketIsConnected(global_socket))
SocketSendTo(global_socket, query_msg, len, server_ip, 48480); //udp
SocketSendTo(global_socket, query_msg, len, "127.0.0.1", 48480); //udp
}
@ -779,7 +775,7 @@ stock void connect_socket()
//socket otherwise declare in public OnConfigsExecuted(){}
global_socket = SocketCreate(SOCKET_UDP, OnSocketError);
SocketSetOption(global_socket, SocketReuseAddr, 1);
SocketBind(global_socket, "127.0.0.1", 48475);
SocketBind(global_socket, "127.0.0.0", 48475);
SocketConnect(global_socket, OnSocketConnected, OnSocketReceive, OnSocketDisconnected, "127.0.0.1", 48475);
}
}