diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-05-23 00:12:24 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-05-23 00:12:24 +0300 |
commit | e1a2b8f600ff9845ecff0f06c85d4d2c29970414 (patch) | |
tree | 6b948bf2bb238232f2d6faea84b70bafb8eaae89 /src/server.cpp | |
parent | 4a6b9a6ac1b07239474bce8d3ebf772ce75e862e (diff) | |
parent | a8a3271470299820c5322523dc439415bc1ff8a0 (diff) | |
download | minetest-e1a2b8f600ff9845ecff0f06c85d4d2c29970414.tar.gz minetest-e1a2b8f600ff9845ecff0f06c85d4d2c29970414.tar.bz2 minetest-e1a2b8f600ff9845ecff0f06c85d4d2c29970414.zip |
merged password change menu
Diffstat (limited to 'src/server.cpp')
-rw-r--r-- | src/server.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/server.cpp b/src/server.cpp index 84f9a28e0..5c03ea8f6 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -3004,6 +3004,31 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id) SendPlayerHP(player); } + else if(command == TOSERVER_PASSWORD) + { + /* + [0] u16 TOSERVER_PASSWORD + [2] u8[28] old password + [30] u8[28] new password + */ + + if(datasize != 2+PASSWORD_SIZE*2) + return; + char password[PASSWORD_SIZE]; + for(u32 i=0; i<PASSWORD_SIZE-1; i++) + password[i] = data[2+i]; + password[PASSWORD_SIZE-1] = 0; + if(strcmp(player->getPassword(),password)) + { + // Wrong old password supplied!! + SendChatMessage(peer_id, L"Invalid old password supplied. Password NOT changed."); + return; + } + for(u32 i=0; i<PASSWORD_SIZE-1; i++) + password[i] = data[30+i]; + player->updatePassword(password); + SendChatMessage(peer_id, L"Password change successful"); + } else { derr_server<<"WARNING: Server::ProcessData(): Ignoring " |