Problem with CON_DISCONNECT

From: Akuma/Chris Baggett/DOOMer (doomer@BAYOU.COM)
Date: 03/16/98


well, I (unfortunately) found a bug in the code.
or one of the players that likes to just sit at the screen and idle out did.

and this is a completely different problem from the other one, I do believe
this is stock code (i hand-patched in pl12).

It happens ONLY if someone idles out and gets force-rented and extracted.

it happens in this section of code in close_socket from comm.c

  if (d->character) {
    if (STATE(d) == CON_PLAYING || STATE(d) == CON_DISCONNECT) {
      act("$n has lost $s link.", TRUE, d->character, 0, 0, TO_ROOM);
      sprintf(buf, "Closing link to: %s.", GET_NAME(d->character));
>>>>  mudlog(buf, NRM, MAX(LVL_IMMORT, GET_INVIS_LEV(d->character)), TRUE);
      save_char(d->character, NOWHERE);
      d->character->desc = NULL;
    } else {
the mudlog line is the bug,
and the problem is the fact that player_specials are freed on the
character somewhere before this section of code.

I was wondering If maybe I missed a check for CON_DISCONNECT somewhere or
something.
would someone mind pointing me in the right direction?

Thanks.

Code On
Akuma the Raging Coder

  +------------------------------------------------------------+
  | "The poets talk about love, but what I talk about is DOOM, |
  |      because in the end, DOOM is all that counts." -       |
  |   Alex Machine/George Stark/Stephen King, The Dark Half    |
  |        "Nothing is IMPOSSIBLE, Just IMPROBABLE"            |
  |   "Easier Said Than Done, But Better Done Than Said..."    |
  +------------------------------------------------------------+


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST