summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net_sdl.c26
-rw-r--r--src/setup/multiplayer.c2
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);