diff options
-rw-r--r-- | src/net_sdl.c | 26 | ||||
-rw-r--r-- | src/setup/multiplayer.c | 2 |
2 files changed, 20 insertions, 8 deletions
diff --git a/src/net_sdl.c b/src/net_sdl.c index 7de61cb7..da667ff7 100644 --- a/src/net_sdl.c +++ b/src/net_sdl.c @@ -302,15 +302,27 @@ static boolean NET_SDL_RecvPacket(net_addr_t **addr, net_packet_t **packet) void NET_SDL_AddrToString(net_addr_t *addr, char *buffer, int buffer_len) { IPaddress *ip; + uint32_t host; + uint16_t port; ip = (IPaddress *) addr->handle; - - M_snprintf(buffer, buffer_len, - "%i.%i.%i.%i", - ip->host & 0xff, - (ip->host >> 8) & 0xff, - (ip->host >> 16) & 0xff, - (ip->host >> 24) & 0xff); + host = SDLNet_Read32(&ip->host); + port = SDLNet_Read16(&ip->port); + + M_snprintf(buffer, buffer_len, "%i.%i.%i.%i", + (host >> 24) & 0xff, (host >> 16) & 0xff, + (host >> 8) & 0xff, host & 0xff); + + // If we are using the default port we just need to show the IP address, + // but otherwise we need to include the port. This is important because + // we use the string representation in the setup tool to provided an + // address to connect to. + if (port != DEFAULT_PORT) + { + char portbuf[10]; + M_snprintf(portbuf, sizeof(portbuf), ":%i", port); + M_StringConcat(buffer, portbuf, buffer_len); + } } net_addr_t *NET_SDL_ResolveAddress(char *address) diff --git a/src/setup/multiplayer.c b/src/setup/multiplayer.c index 6b294077..53b8ba26 100644 --- a/src/setup/multiplayer.c +++ b/src/setup/multiplayer.c @@ -957,7 +957,7 @@ static void ServerQueryWindow(char *title) TXT_NewScrollPane(70, 10, results_table = TXT_NewTable(3))); - TXT_SetColumnWidths(results_table, 7, 16, 46); + TXT_SetColumnWidths(results_table, 7, 22, 40); TXT_SetPeriodicCallback(QueryPeriodicCallback, results_table, 1); TXT_SignalConnect(query_window, "closed", QueryWindowClosed, NULL); |