fix problems found by pelish

This commit is contained in:
pandaemonium 2007-08-03 20:10:03 +00:00
parent 4255945d6d
commit 35cd9d240c
5 changed files with 37 additions and 12 deletions

View file

@ -159,6 +159,26 @@ extern int account_set_pass(t_account * account, char const * passhash1)
return account_set_strattr(account,"BNET\\acct\\passhash1",passhash1);
}
extern char const * account_get_salt(t_account * account)
{
return account_get_strattr(account,"BNET\\acct\\salt");
}
extern int account_set_salt(t_account * account, char const * salt)
{
return account_set_strattr(account,"BNET\\acct\\salt",salt);
}
extern char const * account_get_verifier(t_account * account)
{
return account_get_strattr(account,"BNET\\acct\\verifier");
}
extern int account_set_verifier(t_account * account, char const * verifier)
{
return account_set_strattr(account,"BNET\\acct\\verifier",verifier);
}
/****************************************************************/

View file

@ -50,6 +50,12 @@ extern int account_set_boolattr(t_account * account, char const * key, int val);
extern char const * account_get_pass(t_account * account);
extern int account_set_pass(t_account * account, char const * passhash1);
extern char const * account_get_salt(t_account * account);
extern int account_set_salt(t_account * account, char const * salt);
extern char const * account_get_verifier(t_account * account);
extern int account_set_verifier(t_account * account, char const * verifier);
/* authorization */
extern int account_get_auth_admin(t_account * account, char const * channelname);
extern int account_set_auth_admin(t_account * account, char const * channelname, int val);

View file

@ -1675,8 +1675,11 @@ static int _client_loginreqw3(t_connection * c, t_packet const *const packet)
packet_set_size(rpacket, sizeof(t_server_loginreply_w3));
packet_set_type(rpacket, SERVER_LOGINREPLY_W3);
for (i = 0; i < 16; i++)
bn_int_set(&rpacket->u.server_loginreply_w3.unknown[i], 0);
for (i = 0; i < 32; i++)
bn_byte_set(&rpacket->u.server_loginreply_w3.salt[i], 0);
for (i = 0; i < 32; i++)
bn_byte_set(&rpacket->u.server_loginreply_w3.server_public_key[i], 0);
{
/* too many logins? */
@ -1742,7 +1745,8 @@ static int _client_logonproofreq(t_connection * c, t_packet const *const packet)
{
char const *username;
t_account *account;
int server_password_proof[5];
bn_byte server_password_proof[20];
int i;
eventlog(eventlog_level_info, __FUNCTION__, "[%d] logon proof requested", conn_get_socket(c));
@ -1755,11 +1759,8 @@ static int _client_logonproofreq(t_connection * c, t_packet const *const packet)
bn_int_set(&rpacket->u.server_logonproofreply.response, SERVER_LOGONPROOFREPLY_RESPONSE_BADPASS);
bn_int_set(&rpacket->u.server_logonproofreply.server_password_proof[0], server_password_proof[0]);
bn_int_set(&rpacket->u.server_logonproofreply.server_password_proof[1], server_password_proof[1]);
bn_int_set(&rpacket->u.server_logonproofreply.server_password_proof[2], server_password_proof[2]);
bn_int_set(&rpacket->u.server_logonproofreply.server_password_proof[3], server_password_proof[3]);
bn_int_set(&rpacket->u.server_logonproofreply.server_password_proof[4], server_password_proof[4]);
for (i = 0; i < 20; i++)
bn_byte_set(&rpacket->u.server_logonproofreply.server_password_proof[i], bn_byte_get(server_password_proof[i]));
if (!(username = conn_get_loggeduser(c))) {
eventlog(eventlog_level_info, __FUNCTION__, "[%d] (W3) got NULL username, 0x54ff before 0x53ff?", conn_get_socket(c));

View file

@ -907,7 +907,7 @@ static int _handle_whois_command(t_connection * conn, int numparams, char ** par
static int _handle_part_command(t_connection * conn, int numparams, char ** params, char * text)
{
message_send_text(conn,message_type_part,conn,NULL);
conn_set_channel(conn, NULL);
return 0;
}

View file

@ -853,7 +853,6 @@ static int _handle_join_command(t_connection * conn, int numparams, char ** para
snprintf(temp, sizeof(temp), "%s :End of NAMES list",wolname);
irc_send(conn,RPL_ENDOFNAMES,temp);
}
}
}
}
if (e)
@ -878,8 +877,7 @@ static int _handle_part_command(t_connection * conn, int numparams, char ** para
if ((conn_wol_get_ingame(conn) == 1)) {
conn_wol_set_ingame(conn,0);
}
message_send_text(conn,message_type_part,conn,NULL);
conn_set_channel(conn, NULL); /* In WOL we disconecting from the channel */
conn_set_channel(conn, NULL); /* In WOL we disconecting from the channel */
return 0;
}