[ScryMUD] SVN Commit Info r901 - trunk/mud/grrmud/server

scrymud at wanfear.com scrymud at wanfear.com
Tue Feb 27 00:08:04 PST 2007


Author: eroper
Date: 2007-02-27 00:08:03 -0800 (Tue, 27 Feb 2007)
New Revision: 901

Modified:
   trunk/mud/grrmud/server/login.cc
Log:
I'm pretty sure I've managed to find safe placements for re-enabling
client-side echo after the password prompt. In particular link-death
reconnects weren't always receiving the WONT ECHO from the server.


Modified: trunk/mud/grrmud/server/login.cc
===================================================================
--- trunk/mud/grrmud/server/login.cc	2007-02-27 03:56:47 UTC (rev 900)
+++ trunk/mud/grrmud/server/login.cc	2007-02-27 08:08:03 UTC (rev 901)
@@ -404,8 +404,6 @@
 
                string = pc->input.Get_Command(eos, term_by_period);
 
-               pc->p_handler->set_echo(false);//stop echoing for the client
-
                if (string == "__HEGEMON__") {
                   using_client(*this);
                   setClient(HEGEMON);
@@ -417,7 +415,6 @@
                if (!isUsingClient())
                   show(ANSI_ECHO_ON); //echo ON
 
-
                ProtocolHandler* tmp_p_handler = pc->p_handler;
                int tmp_int = pc->descriptor;
                int tmp_index = pc->index;
@@ -482,9 +479,9 @@
 
                setNoClient(); //turn off by default
 
-
                //This has to be restored before calling using_client() so we
                //don't allow protocol handlers to go runaway.
+
                pc->p_handler = tmp_p_handler;
 
                if (using_hegemon) {
@@ -497,7 +494,7 @@
                pc->index = tmp_index;
                pc->mode = MODE_LOGGING_IN;
                pc->link_condition = CON_LOGGING_IN;
-               
+
                int was_link_dead = TRUE;
 
                mudlog << "pc->password:  -:" << pc->password << ":-"
@@ -565,7 +562,10 @@
                         using_client(*old_ptr);
                         old_ptr->setClient(whichClient());
                      }
-                     
+
+                     old_ptr->pc->p_handler->set_echo(false);//stop echoing for the client
+
+
                      // I don't think this is needed. --Ben
                      //if (!old_ptr->isUsingClient()) {
                      //   old_ptr->show(CTAG_ENGAGE_CLIENT(HEGEMON)); // can we use crit.whichClient() here?
@@ -601,6 +601,9 @@
                   }//if was link dead
                   else {
                      /* regular logging in */
+
+                     pc->p_handler->set_echo(false);//stop echoing for the client
+
                      quit_do_login_old(*this); //join the game
 
                      // alert imms of possible multiplaying




More information about the ScryMUD mailing list