summaryrefslogtreecommitdiff
path: root/src/accounthandler.cpp
diff options
context:
space:
mode:
authorGuillaume Melquiond <guillaume.melquiond@gmail.com>2006-05-20 09:26:47 +0000
committerGuillaume Melquiond <guillaume.melquiond@gmail.com>2006-05-20 09:26:47 +0000
commitc548f6899f0d188ef3a5a3d7abbb3b32e9addaa6 (patch)
treeb5687ca854f5eb086f37ef227eea7733d2a3c3f3 /src/accounthandler.cpp
parent149efe91e50bf0e298761bb941e20ce4d8362314 (diff)
downloadmanaserv-c548f6899f0d188ef3a5a3d7abbb3b32e9addaa6.tar.gz
manaserv-c548f6899f0d188ef3a5a3d7abbb3b32e9addaa6.tar.bz2
manaserv-c548f6899f0d188ef3a5a3d7abbb3b32e9addaa6.tar.xz
manaserv-c548f6899f0d188ef3a5a3d7abbb3b32e9addaa6.zip
Changed ConnectionHandler and NetComputer into low-level base classes;
they are overloaded by client-aware classes. Forced statement syntax for loggers.
Diffstat (limited to 'src/accounthandler.cpp')
-rw-r--r--src/accounthandler.cpp141
1 files changed, 71 insertions, 70 deletions
diff --git a/src/accounthandler.cpp b/src/accounthandler.cpp
index 389bed13..d1f9263a 100644
--- a/src/accounthandler.cpp
+++ b/src/accounthandler.cpp
@@ -44,8 +44,9 @@ using tmwserv::Storage;
* correct subroutines. Account handler takes care of determining the
* current step in the account process, be it creation, setup, or login.
*/
-void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
+void AccountHandler::receiveMessage(NetComputer &comp, MessageIn &message)
{
+ ClientComputer &computer = static_cast< ClientComputer & >(comp);
Storage &store = Storage::instance("tmw");
@@ -67,26 +68,26 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
std::string clientVersion = message.readString();
std::string username = message.readString();
std::string password = message.readString();
- LOG_INFO(username << " is trying to login.", 1)
+ LOG_INFO(username << " is trying to login.", 1);
result.writeShort(SMSG_LOGIN_RESPONSE);
if (clientVersion < config.getValue("clientVersion", "0.0.0"))
{
- LOG_INFO("Client has an unsufficient version number to login.", 1)
+ LOG_INFO("Client has an unsufficient version number to login.", 1);
result.writeByte(LOGIN_INVALID_VERSION);
break;
}
if (stringFilter->findDoubleQuotes(username))
{
result.writeByte(LOGIN_INVALID_USERNAME);
- LOG_INFO(username << ": has got double quotes in it.", 1)
+ LOG_INFO(username << ": has got double quotes in it.", 1);
break;
}
if (computer.getAccount().get() != NULL) {
LOG_INFO("Already logged in as " << computer.getAccount()->getName()
- << ".", 1)
- LOG_INFO("Please logout first.", 1)
+ << ".", 1);
+ LOG_INFO("Please logout first.", 1);
result.writeByte(LOGIN_ALREADY_LOGGED);
break;
}
@@ -94,7 +95,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
{
// Too much clients logged in.
LOG_INFO("Client couldn't login. Already has " << MAX_CLIENTS
- << " logged in.", 1)
+ << " logged in.", 1);
result.writeByte(LOGIN_SERVER_FULL);
break;
}
@@ -104,16 +105,16 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if (!acc.get()) {
// account doesn't exist -- send error to client
- LOG_INFO(username << ": Account does not exist.", 1)
+ LOG_INFO(username << ": Account does not exist.", 1);
result.writeByte(LOGIN_INVALID_USERNAME);
} else if (acc->getPassword() != password) {
// bad password -- send error to client
- LOG_INFO("Bad password for " << username, 1)
+ LOG_INFO("Bad password for " << username, 1);
result.writeByte(LOGIN_INVALID_PASSWORD);
} else {
- LOG_INFO("Login OK by " << username, 1)
+ LOG_INFO("Login OK by " << username, 1);
// Associate account with connection
computer.setAccount(acc);
@@ -124,7 +125,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
tmwserv::Beings &chars = computer.getAccount()->getCharacters();
result.writeByte(chars.size());
- LOG_INFO(username << "'s account has " << chars.size() << " character(s).", 1)
+ LOG_INFO(username << "'s account has " << chars.size() << " character(s).", 1);
std::string charNames = "";
for (unsigned int i = 0; i < chars.size(); i++)
{
@@ -133,7 +134,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
charNames += chars[i]->getName();
}
charNames += ".";
- LOG_INFO(charNames.c_str(), 1)
+ LOG_INFO(charNames.c_str(), 1);
}
}
break;
@@ -144,7 +145,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if ( computer.getAccount().get() == NULL )
{
- LOG_INFO("Can't logout. Not even logged in.", 1)
+ LOG_INFO("Can't logout. Not even logged in.", 1);
result.writeByte(LOGOUT_UNSUCCESSFULL);
}
else
@@ -152,14 +153,14 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
std::string username = computer.getAccount()->getName();
if ( username == "" )
{
- LOG_INFO("Account without name ? Logged out anyway...", 1)
+ LOG_INFO("Account without name ? Logged out anyway...", 1);
// computer.unsetCharacter(); Done by unsetAccount();
computer.unsetAccount();
result.writeByte(LOGOUT_UNSUCCESSFULL);
}
else
{
- LOG_INFO(computer.getAccount()->getName() << " logs out.", 1)
+ LOG_INFO(computer.getAccount()->getName() << " logs out.", 1);
// computer.unsetCharacter(); Done by unsetAccount();
computer.unsetAccount();
result.writeByte(LOGOUT_OK);
@@ -178,7 +179,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if (clientVersion < config.getValue("clientVersion", "0.0.0"))
{
- LOG_INFO("Client has an unsufficient version number to login.", 1)
+ LOG_INFO("Client has an unsufficient version number to login.", 1);
result.writeByte(REGISTER_INVALID_VERSION);
break;
}
@@ -187,52 +188,52 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if (!stringFilter->filterContent(username))
{
result.writeByte(REGISTER_INVALID_USERNAME);
- LOG_INFO(username << ": has got bad words in it.", 1)
+ LOG_INFO(username << ": has got bad words in it.", 1);
break;
}
// Checking if there are double quotes in it.
if (stringFilter->findDoubleQuotes(username))
{
result.writeByte(REGISTER_INVALID_USERNAME);
- LOG_INFO(username << ": has got double quotes in it.", 1)
+ LOG_INFO(username << ": has got double quotes in it.", 1);
break;
}
// Checking conditions for having a good account.
- LOG_INFO(username << " is trying to register.", 1)
+ LOG_INFO(username << " is trying to register.", 1);
// see if the account exists
tmwserv::AccountPtr accPtr = store.getAccount(username);
if ( accPtr.get() ) // Account already exists.
{
result.writeByte(REGISTER_EXISTS_USERNAME);
- LOG_INFO(username << ": Username already exists.", 1)
+ LOG_INFO(username << ": Username already exists.", 1);
}
else if ((username.length() < MIN_LOGIN_LENGTH) || (username.length() > MAX_LOGIN_LENGTH)) // Username length
{
result.writeByte(REGISTER_INVALID_USERNAME);
- LOG_INFO(username << ": Username too short or too long.", 1)
+ LOG_INFO(username << ": Username too short or too long.", 1);
}
else if ((password.length() < MIN_PASSWORD_LENGTH) || (password.length() > MAX_PASSWORD_LENGTH))
{
result.writeByte(REGISTER_INVALID_PASSWORD);
- LOG_INFO(email << ": Password too short or too long.", 1)
+ LOG_INFO(email << ": Password too short or too long.", 1);
}
else if (!stringFilter->isEmailValid(email))
{
result.writeByte(REGISTER_INVALID_EMAIL);
- LOG_INFO(email << ": Email Invalid, only a@b.c format is accepted.", 1)
+ LOG_INFO(email << ": Email Invalid, only a@b.c format is accepted.", 1);
}
else if (stringFilter->findDoubleQuotes(email))
{
result.writeByte(REGISTER_INVALID_EMAIL);
- LOG_INFO(email << ": has got double quotes in it.", 1)
+ LOG_INFO(email << ": has got double quotes in it.", 1);
break;
}
else if (store.getSameEmailNumber(email) > 0) // Search if Email already exists.
{
result.writeByte(REGISTER_EXISTS_EMAIL);
- LOG_INFO(email << ": Email already exists.", 1)
+ LOG_INFO(email << ": Email already exists.", 1);
}
else
{
@@ -242,7 +243,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
result.writeByte(REGISTER_OK);
store.flush(); // flush changes
- LOG_INFO(username << ": Account registered.", 1)
+ LOG_INFO(username << ": Account registered.", 1);
}
}
break;
@@ -251,14 +252,14 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
{
std::string username = message.readString();
std::string password = message.readString();
- LOG_INFO(username << " wants to be deleted from our accounts.", 1)
+ LOG_INFO(username << " wants to be deleted from our accounts.", 1);
result.writeShort(SMSG_UNREGISTER_RESPONSE);
if (stringFilter->findDoubleQuotes(username))
{
result.writeByte(UNREGISTER_INVALID_USERNAME);
- LOG_INFO(username << ": has got double quotes in it.", 1)
+ LOG_INFO(username << ": has got double quotes in it.", 1);
break;
}
@@ -267,12 +268,12 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if (!accPtr.get()) {
// account doesn't exist -- send error to client
- LOG_INFO(username << ": Account doesn't exist anyway.", 1)
+ LOG_INFO(username << ": Account doesn't exist anyway.", 1);
result.writeByte(UNREGISTER_INVALID_USERNAME);
} else if (accPtr->getPassword() != password) {
// bad password -- send error to client
- LOG_INFO("Won't delete it : Bad password for " << username << ".", 1)
+ LOG_INFO("Won't delete it : Bad password for " << username << ".", 1);
result.writeByte(UNREGISTER_INVALID_PASSWORD);
} else {
@@ -288,7 +289,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
}
}
// delete account and associated characters
- LOG_INFO("Farewell " << username << " ...", 1)
+ LOG_INFO("Farewell " << username << " ...", 1);
store.delAccount(username);
store.flush();
result.writeByte(UNREGISTER_OK);
@@ -302,7 +303,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if (computer.getAccount().get() == NULL) {
result.writeByte(EMAILCHG_NOLOGIN);
- LOG_INFO("Not logged in. Can't change your Account's Email.", 1)
+ LOG_INFO("Not logged in. Can't change your Account's Email.", 1);
break;
}
@@ -311,24 +312,24 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
{
result.writeByte(EMAILCHG_INVALID);
LOG_INFO(email << ": Invalid format, cannot change Email for " <<
- computer.getAccount()->getName(), 1)
+ computer.getAccount()->getName(), 1);
}
else if (stringFilter->findDoubleQuotes(email))
{
result.writeByte(EMAILCHG_INVALID);
- LOG_INFO(email << ": has got double quotes in it.", 1)
+ LOG_INFO(email << ": has got double quotes in it.", 1);
}
else if (store.getSameEmailNumber(email) > 1) // Search if Email already exists,
{ // Except for the one already that is to
result.writeByte(EMAILCHG_EXISTS_EMAIL); // be changed.
- LOG_INFO(email << ": New Email already exists.", 1)
+ LOG_INFO(email << ": New Email already exists.", 1);
}
else
{
computer.getAccount()->setEmail(email);
result.writeByte(EMAILCHG_OK);
LOG_INFO(computer.getAccount()->getName() << ": Email changed to: " <<
- email, 1)
+ email, 1);
}
}
break;
@@ -338,7 +339,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
result.writeShort(SMSG_EMAIL_GET_RESPONSE);
if (computer.getAccount().get() == NULL) {
result.writeByte(EMAILGET_NOLOGIN);
- LOG_INFO("Not logged in. Can't get your Account's current Email.", 1)
+ LOG_INFO("Not logged in. Can't get your Account's current Email.", 1);
break;
}
else
@@ -356,7 +357,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if (computer.getAccount().get() == NULL)
{
result.writeByte(PASSCHG_NOLOGIN);
- LOG_INFO("Not logged in. Can't change your Account's Password.", 1)
+ LOG_INFO("Not logged in. Can't change your Account's Password.", 1);
break;
}
std::string oldPassword = message.readString();
@@ -367,31 +368,31 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
{
result.writeByte(PASSCHG_INVALID);
LOG_INFO(computer.getAccount()->getName() <<
- ": New password too long or too short.", 1)
+ ": New password too long or too short.", 1);
}
else if (stringFilter->findDoubleQuotes(password1))
{
result.writeByte(PASSCHG_INVALID);
- LOG_INFO(password1 << ": has got double quotes in it.", 1)
+ LOG_INFO(password1 << ": has got double quotes in it.", 1);
}
else if ( password1 != password2 )
{
result.writeByte(PASSCHG_MISMATCH);
LOG_INFO(computer.getAccount()->getName() <<
- ": New password mismatched confirmation password.", 1)
+ ": New password mismatched confirmation password.", 1);
}
else if ( oldPassword != computer.getAccount()->getPassword() )
{
result.writeByte(PASSCHG_MISMATCH);
LOG_INFO(computer.getAccount()->getName() <<
- ": Old password is wrong.", 1)
+ ": Old password is wrong.", 1);
}
else
{
computer.getAccount()->setPassword(password1);
result.writeByte(PASSCHG_OK);
LOG_INFO(computer.getAccount()->getName() <<
- ": The password was changed.", 1)
+ ": The password was changed.", 1);
}
}
break;
@@ -402,7 +403,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if (computer.getAccount().get() == NULL) {
result.writeByte(CREATE_NOLOGIN);
- LOG_INFO("Not logged in. Can't create a Character.", 1)
+ LOG_INFO("Not logged in. Can't create a Character.", 1);
break;
}
@@ -412,7 +413,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
{
result.writeByte(CREATE_TOO_MUCH_CHARACTERS);
LOG_INFO("Already has " << MAX_OF_CHARACTERS
- << " characters. Can't create another Character.", 1)
+ << " characters. Can't create another Character.", 1);
break;
}
@@ -421,35 +422,35 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if (!stringFilter->filterContent(name))
{
result.writeByte(CREATE_INVALID_NAME);
- LOG_INFO(name << ": Character has got bad words in it.", 1)
+ LOG_INFO(name << ": Character has got bad words in it.", 1);
break;
}
// Checking if the Name has got double quotes.
if (stringFilter->findDoubleQuotes(name))
{
result.writeByte(CREATE_INVALID_NAME);
- LOG_INFO(name << ": has got double quotes in it.", 1)
+ LOG_INFO(name << ": has got double quotes in it.", 1);
break;
}
// Check if the character's name already exists
if (store.doesCharacterNameExists(name))
{
result.writeByte(CREATE_EXISTS_NAME);
- LOG_INFO(name << ": Character's name already exists.", 1)
+ LOG_INFO(name << ": Character's name already exists.", 1);
break;
}
// Check for character's name length
if ((name.length() < MIN_CHARACTER_LENGTH) || (name.length() > MAX_CHARACTER_LENGTH))
{
result.writeByte(CREATE_INVALID_NAME);
- LOG_INFO(name << ": Character's name too short or too long.", 1)
+ LOG_INFO(name << ": Character's name too short or too long.", 1);
break;
}
char hairStyle = message.readByte();
if ((hairStyle < 0) || (hairStyle > (signed)MAX_HAIRSTYLE_VALUE))
{
result.writeByte(CREATE_INVALID_HAIRSTYLE);
- LOG_INFO(name << ": Character's hair Style is invalid.", 1)
+ LOG_INFO(name << ": Character's hair Style is invalid.", 1);
break;
}
@@ -457,14 +458,14 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if ((hairColor < 0) || (hairColor > (signed)MAX_HAIRCOLOR_VALUE))
{
result.writeByte(CREATE_INVALID_HAIRCOLOR);
- LOG_INFO(name << ": Character's hair Color is invalid.", 1)
+ LOG_INFO(name << ": Character's hair Color is invalid.", 1);
break;
}
Genders gender = (Genders)message.readByte();
if ((gender < 0) || (gender > (signed)MAX_GENDER_VALUE))
{
result.writeByte(CREATE_INVALID_GENDER);
- LOG_INFO(name << ": Character's gender is invalid.", 1)
+ LOG_INFO(name << ": Character's gender is invalid.", 1);
break;
}
// LATER_ON: Add race, face and maybe special attributes.
@@ -522,25 +523,25 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if ( totalStats > POINTS_TO_DISTRIBUTES_AT_LVL1 )
{
result.writeByte(CREATE_RAW_STATS_TOO_HIGH);
- LOG_INFO(name << ": Character's stats are too high to be of level 1.", 1)
+ LOG_INFO(name << ": Character's stats are too high to be of level 1.", 1);
break;
}
if ( totalStats < POINTS_TO_DISTRIBUTES_AT_LVL1 )
{
result.writeByte(CREATE_RAW_STATS_TOO_LOW);
- LOG_INFO(name << ": Character's stats are too low to be of level 1.", 1)
+ LOG_INFO(name << ": Character's stats are too low to be of level 1.", 1);
break;
}
if ( (highestStat - lowestStat) > (signed)MAX_DIFF_BETWEEN_STATS )
{
result.writeByte(CREATE_RAW_STATS_INVALID_DIFF);
- LOG_INFO(name << ": Character's stats difference is too high to be accepted.", 1)
+ LOG_INFO(name << ": Character's stats difference is too high to be accepted.", 1);
break;
}
if ( !validNonZeroRawStats )
{
result.writeByte(CREATE_RAW_STATS_EQUAL_TO_ZERO);
- LOG_INFO(name << ": One stat is equal to zero.", 1)
+ LOG_INFO(name << ": One stat is equal to zero.", 1);
break;
}
@@ -555,7 +556,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
computer.getAccount()->addCharacter(newCharacter);
LOG_INFO("Character " << name << " was created for "
- << computer.getAccount()->getName() << "'s account.", 1)
+ << computer.getAccount()->getName() << "'s account.", 1);
store.flush(); // flush changes
result.writeByte(CREATE_OK);
@@ -569,7 +570,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if (computer.getAccount().get() == NULL)
{
result.writeByte(SELECT_NOLOGIN);
- LOG_INFO("Not logged in. Can't select a Character.", 1)
+ LOG_INFO("Not logged in. Can't select a Character.", 1);
break; // not logged in
}
@@ -579,14 +580,14 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if (chars.size() == 0 )
{
result.writeByte(SELECT_NO_CHARACTERS);
- LOG_INFO("Character Selection : Yet no characters created.", 1)
+ LOG_INFO("Character Selection : Yet no characters created.", 1);
break;
}
// Character ID = 0 to Number of Characters - 1.
if (charNum >= chars.size()) {
// invalid char selection
result.writeByte(SELECT_INVALID);
- LOG_INFO("Character Selection : Selection out of ID range.", 1)
+ LOG_INFO("Character Selection : Selection out of ID range.", 1);
break;
}
@@ -614,7 +615,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if (computer.getAccount().get() == NULL)
{
result.writeByte(DELETE_NOLOGIN);
- LOG_INFO("Not logged in. Can't delete a Character.", 1)
+ LOG_INFO("Not logged in. Can't delete a Character.", 1);
break; // not logged in
}
@@ -625,14 +626,14 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
{
result.writeByte(DELETE_NO_MORE_CHARACTERS);
LOG_INFO("Character Deletion : No characters in " << computer.getAccount()->getName()
- << "'s account.", 1)
+ << "'s account.", 1);
break;
}
// Character ID = 0 to Number of Characters - 1.
if (charNum >= chars.size()) {
// invalid char selection
result.writeByte(DELETE_INVALID_ID);
- LOG_INFO("Character Deletion : Selection out of ID range.", 1)
+ LOG_INFO("Character Deletion : Selection out of ID range.", 1);
break;
}
@@ -650,7 +651,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
std::string deletedCharacter = chars[charNum].get()->getName();
computer.getAccount()->delCharacter(deletedCharacter);
store.flush();
- LOG_INFO(deletedCharacter << ": Character deleted...", 1)
+ LOG_INFO(deletedCharacter << ": Character deleted...", 1);
result.writeByte(DELETE_OK);
}
@@ -663,7 +664,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
if (computer.getAccount().get() == NULL)
{
result.writeByte(CHAR_LIST_NOLOGIN);
- LOG_INFO("Not logged in. Can't list characters.", 1)
+ LOG_INFO("Not logged in. Can't list characters.", 1);
break; // not logged in
}
@@ -673,7 +674,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
result.writeByte(chars.size());
LOG_INFO(computer.getAccount()->getName() << "'s account has "
- << chars.size() << " character(s).", 1)
+ << chars.size() << " character(s).", 1);
std::string charStats = "";
std::string mapName = "";
for (unsigned int i = 0; i < chars.size(); i++)
@@ -699,12 +700,12 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
result.writeShort(chars[i]->getY());
}
charStats += ".";
- LOG_INFO(charStats.c_str(), 1)
+ LOG_INFO(charStats.c_str(), 1);
}
break;
default:
- LOG_WARN("Invalid message type", 0)
+ LOG_WARN("Invalid message type", 0);
result.writeShort(SMSG_LOGIN_RESPONSE);
result.writeByte(LOGIN_UNKNOWN);
break;
@@ -727,7 +728,7 @@ void AccountHandler::receiveMessage(NetComputer &computer, MessageIn &message)
* requested char, ERROR on early termination of the
* routine.
*/
-int AccountHandler::loginMessage(NetComputer &computer, MessageIn &message)
+int AccountHandler::loginMessage(ClientComputer &computer, MessageIn &message)
{
// Get the handle (account) the player is requesting
// RETURN TMW_ACCOUNTERROR_NOEXIST if: requested does not handle exist
@@ -756,7 +757,7 @@ int AccountHandler::loginMessage(NetComputer &computer, MessageIn &message)
* routine.
*/
int
-AccountHandler::assignAccount(NetComputer &computer, tmwserv::Account *account)
+AccountHandler::assignAccount(ClientComputer &computer, tmwserv::Account *account)
{
// RETURN TMW_ACCOUNTERROR_ASSIGNFAILED if: the account was accessed before
// being initalized.