I have rewritten the code, so I don't use crypt anymore. But still it doesn't work, and I can't get the idea why.
Here's the code:
---------
case CON_GET_NEW_PASSWORD:
write_to_buffer( d, "\n\r", 2 );
if ( strlen(argument) < 5 )
{
write_to_buffer( d,
"Пароль должен содержать по крайней мере 5 символов.\n\rПароль: ", // it's some Russian
0 );
return;
}
pwdnew = argument;
for ( p = pwdnew; *p != '\0'; p++ )
{
if ( *p == '~' )
{
write_to_buffer( d,
"Неприемлемый пароль.\n\rПароль: ",
0 );
return;
}
}
DISPOSE( ch->pcdata->pwd );
ch->pcdata->pwd = str_dup( pwdnew );
write_to_buffer( d, "\n\rPlease retype the password to confirm: ", 0 );
d->connected = CON_CONFIRM_NEW_PASSWORD;
break;
case CON_CONFIRM_NEW_PASSWORD:
write_to_buffer( d, "\n\r", 2 );
if (strcmp(argument, ch->pcdata->pwd ))
{
write_to_buffer( d, "Passwords don't match.\n\rRetype password: ",
0 );
d->connected = CON_GET_NEW_PASSWORD;
return;
}
-------
Please, help me! |