diff options
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/client/client.c | 4 | ||||
| -rw-r--r-- | src/engine/client/srvbrowse.c | 8 | ||||
| -rw-r--r-- | src/engine/server/server.c | 1 | ||||
| -rw-r--r-- | src/engine/system.c | 2 |
4 files changed, 10 insertions, 5 deletions
diff --git a/src/engine/client/client.c b/src/engine/client/client.c index 092f6805..43f3fb3d 100644 --- a/src/engine/client/client.c +++ b/src/engine/client/client.c @@ -523,8 +523,8 @@ static void client_process_packet(NETPACKET *packet) int size = packet->data_size-sizeof(SERVERBROWSE_LIST); int num = size/sizeof(NETADDR4); NETADDR4 *addrs = (NETADDR4 *)((char*)packet->data+sizeof(SERVERBROWSE_LIST)); - int i; + for(i = 0; i < num; i++) { NETADDR4 addr = addrs[i]; @@ -555,6 +555,8 @@ static void client_process_packet(NETPACKET *packet) SERVER_INFO info = {0}; int i; + dbg_msg("temp", "got server info"); + unpacker_reset(&up, (unsigned char*)packet->data+sizeof(SERVERBROWSE_INFO), packet->data_size-sizeof(SERVERBROWSE_INFO)); strncpy(info.version, unpacker_get_string(&up), 32); diff --git a/src/engine/client/srvbrowse.c b/src/engine/client/srvbrowse.c index b3ff635a..fcbfa629 100644 --- a/src/engine/client/srvbrowse.c +++ b/src/engine/client/srvbrowse.c @@ -298,10 +298,10 @@ void client_serverbrowse_refresh(int lan) NETPACKET packet; packet.client_id = -1; mem_zero(&packet, sizeof(packet)); - packet.address.ip[0] = 0; - packet.address.ip[1] = 0; - packet.address.ip[2] = 0; - packet.address.ip[3] = 0; + packet.address.ip[0] = 255; + packet.address.ip[1] = 255; + packet.address.ip[2] = 255; + packet.address.ip[3] = 255; packet.address.port = 8303; packet.flags = PACKETFLAG_CONNLESS; packet.data_size = sizeof(SERVERBROWSE_GETINFO); diff --git a/src/engine/server/server.c b/src/engine/server/server.c index 8b591de6..85e0bacb 100644 --- a/src/engine/server/server.c +++ b/src/engine/server/server.c @@ -529,6 +529,7 @@ static void server_send_serverinfo(NETADDR4 *addr) } packer_reset(&p); + packer_add_raw(&p, SERVERBROWSE_INFO, sizeof(SERVERBROWSE_INFO)); packer_add_string(&p, mods_net_version(), 32); packer_add_string(&p, config.sv_name, 64); packer_add_string(&p, config.sv_map, 32); diff --git a/src/engine/system.c b/src/engine/system.c index a6fb362c..e0fcc0b5 100644 --- a/src/engine/system.c +++ b/src/engine/system.c @@ -450,6 +450,8 @@ int net_udp4_send(NETSOCKET sock, const NETADDR4 *addr, const void *data, int si mem_zero(&sa, sizeof(sa)); netaddr4_to_sockaddr(addr, &sa); d = sendto((int)sock, (const char*)data, size, 0, &sa, sizeof(sa)); + if(d < 0) + dbg_msg("net", "sendto error %d %x", d, d); return d; } |