Author Topic: I3 mudlist fix  (Read 83 times)

Offline quixadhal

  • BFF
  • ***
  • Posts: 641
    • View Profile
    • WileyMUD
I3 mudlist fix
« on: February 02, 2018, 09:18:34 PM »
So, following the same idea as we did for Discworld, ages ago, to fix the mudlist packets being broken into chunks issue... which will make you not always see ALL muds out there, fire up your favorite editor and point it at /secure/handlers/intermud.c

A little ways down, you'll find the function mudlist_reply().  This handles the mudlist reply packet that arrives during the startup procedure, and whenever the server decides it has changed and wants to send out an update.

Code: [Select]
private void mudlist_reply( mixed *packet ) {
    mapping mudlist;
    string *tmp;

    if( sizeof(packet) != ( S_P + SIZEOF_MUDLIST ) ) {
        packet_invalid(packet);
        return;
    }

    // Due to a change in the way mudlist packets are broken up and sent
    // in chunks by the server, we can't skip id's that are the same
    // as the last one we saw anymore.
    //
    // Change this to < instead of ==, so we still skip OLD packets,
    // if they somehow appear.
    //
    if( packet[ S_P + MUDLIST_ID ] < config->mud_list->id )
        return;

You could also just comment out the line entirely.  The main thing is, if you ignore the 2nd and subsequent packets with the same ID, you may miss mudlist entries.