From 8f39b81ab0c49bd2c46dcdd191e626d577b7ba1d Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Thu, 13 Dec 2007 20:09:07 +0000 Subject: fixed the server to report the alternative port correctly --- src/engine/server/server.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/engine/server/server.c') diff --git a/src/engine/server/server.c b/src/engine/server/server.c index b723e1b9..d2ef39ed 100644 --- a/src/engine/server/server.c +++ b/src/engine/server/server.c @@ -435,12 +435,24 @@ static void server_send_map(int cid) static void server_send_heartbeat() { + static unsigned char data[sizeof(SERVERBROWSE_HEARTBEAT) + 2]; + unsigned short port = config.sv_port; NETPACKET packet; + + mem_copy(data, SERVERBROWSE_HEARTBEAT, sizeof(SERVERBROWSE_HEARTBEAT)); + packet.client_id = -1; packet.address = master_server; packet.flags = PACKETFLAG_CONNLESS; - packet.data_size = sizeof(SERVERBROWSE_HEARTBEAT); - packet.data = SERVERBROWSE_HEARTBEAT; + packet.data_size = sizeof(SERVERBROWSE_HEARTBEAT) + 2; + packet.data = &data; + + /* supply the set port that the master can use if it has problems */ + if(config.sv_external_port) + port = config.sv_external_port; + data[sizeof(SERVERBROWSE_HEARTBEAT)] = port >> 8; + data[sizeof(SERVERBROWSE_HEARTBEAT)+1] = port&0xff; + netserver_send(net, &packet); } -- cgit 1.4.1