diff -r -N -c socketmud/src/mccp.c socketmud-1.3/src/mccp.c *** socketmud/src/mccp.c Sat Mar 22 14:46:45 2003 --- socketmud-1.3/src/mccp.c Wed Apr 2 10:08:25 2003 *************** *** 91,104 **** /* Cleanly shut down compression on `desc' */ bool compressEnd(D_SOCKET *dsock, unsigned char teleopt, bool forced) { if (!dsock->out_compress) return TRUE; if (dsock->compressing != teleopt) return FALSE; ! dsock->out_compress->avail_in = strlen(dsock->outbuf); ! dsock->out_compress->next_in = (unsigned char *) dsock->outbuf; dsock->top_output = 0; /* No terminating signature is needed - receiver will get Z_STREAM_END */ --- 91,106 ---- /* Cleanly shut down compression on `desc' */ bool compressEnd(D_SOCKET *dsock, unsigned char teleopt, bool forced) { + unsigned char dummy[1]; + if (!dsock->out_compress) return TRUE; if (dsock->compressing != teleopt) return FALSE; ! dsock->out_compress->avail_in = 0; ! dsock->out_compress->next_in = dummy; dsock->top_output = 0; /* No terminating signature is needed - receiver will get Z_STREAM_END */ diff -r -N -c socketmud/src/socket.c socketmud-1.3/src/socket.c *** socketmud/src/socket.c Sat Mar 22 15:05:11 2003 --- socketmud-1.3/src/socket.c Wed Apr 2 10:11:59 2003 *************** *** 853,858 **** --- 853,859 ---- void handle_new_connections(D_SOCKET *dsock, char *arg) { D_MOBILE *p_new; + int i; switch(dsock->state) { *************** *** 917,922 **** --- 918,933 ---- return; } dsock->player->password = strdup(crypt(arg, dsock->player->name)); + + for (i = 0; dsock->player->password[i] != '\0'; i++) + { + if (dsock->player->password[i] == '~') + { + text_to_buffer(dsock, "Illegal password!\n\rPlease enter a new password: "); + return; + } + } + text_to_buffer(dsock, "Please verify the password: "); dsock->state = STATE_VERIFY_PASSWORD; break;