diff --git a/src/hms123311.c b/src/hms123311.c index 10fdf6b96..d9d4fa2f8 100644 --- a/src/hms123311.c +++ b/src/hms123311.c @@ -143,7 +143,7 @@ HMS_in_use (void) } void -HMS_fetch_rooms (void) +HMS_fetch_rooms (int joining) { struct HMS_buffer *hms; char *p; @@ -179,12 +179,17 @@ HMS_fetch_rooms (void) break; } - room_list[i].header.buffer[0] = 1; - room_list[i].id = 0; - strcpy(room_list[i].name, "All"); - strcpy(room_list[i].motd, "Wildcard."); + if (joining) + { + room_list[i].header.buffer[0] = 1; + room_list[i].id = 0; + strcpy(room_list[i].name, "All"); + strcpy(room_list[i].motd, "Wildcard."); - room_list[i + 1].header.buffer[0] = 0; + i++; + } + + room_list[i].header.buffer[0] = 0; } HMS_end(hms); } diff --git a/src/mserv.c b/src/mserv.c index f43468e66..c493ed4dc 100644 --- a/src/mserv.c +++ b/src/mserv.c @@ -70,7 +70,7 @@ /* HTTP */ int HMS_in_use (void); -void HMS_fetch_rooms (void); +void HMS_fetch_rooms (int joining); int HMS_register (void); void HMS_unlist (void); void HMS_update (void); @@ -515,7 +515,7 @@ INT32 GetRoomsList(boolean hosting) if (HMS_in_use()) { - HMS_fetch_rooms(); + HMS_fetch_rooms( ! hosting ); return 1; }