X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_services_account.cpp;h=74e4453762a9ad132b1cd9758890d2c55fd33462;hb=9422f4157ccff0482cd70105ada3bd9325455eaa;hp=c13d0e3b32cfe475f21cca30bb9af7a91ffa1729;hpb=13fcf22eaba873290e0f04484fc75bcd339d4fa3;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_services_account.cpp b/src/modules/m_services_account.cpp index c13d0e3b3..74e445376 100644 --- a/src/modules/m_services_account.cpp +++ b/src/modules/m_services_account.cpp @@ -11,10 +11,6 @@ * --------------------------------------------------- */ -#include "users.h" -#include "channels.h" -#include "modules.h" -#include "hashcomp.h" #include "inspircd.h" /* $ModDesc: Povides support for ircu-style services accounts, including chmode +R, etc. */ @@ -116,7 +112,7 @@ class ModuleServicesAccount : public Module AChannel_M* m2; AUser_R* m3; public: - ModuleServicesAccount(InspIRCd* Me) : Module::Module(Me) + ModuleServicesAccount(InspIRCd* Me) : Module(Me) { m1 = new AChannel_R(ServerInstance); @@ -225,7 +221,7 @@ class ModuleServicesAccount : public Module // this method is called. We should use the ProtoSendMetaData function after we've // corrected decided how the data should look, to send the metadata on its way if // it is ours. - virtual void OnSyncUserMetaData(userrec* user, Module* proto, void* opaque, const std::string &extname) + virtual void OnSyncUserMetaData(userrec* user, Module* proto, void* opaque, const std::string &extname, bool displayable) { // check if the linking module wants to know about OUR metadata if (extname == "accountname") @@ -235,6 +231,9 @@ class ModuleServicesAccount : public Module user->GetExt("accountname", account); if (account) { + // remove any accidental leading/trailing spaces + trim(*account); + // call this function in the linking module, let it format the data how it // sees fit, and send it on its way. We dont need or want to know how. proto->ProtoSendMetaData(opaque,TYPE_USER,user,extname,*account); @@ -243,7 +242,7 @@ class ModuleServicesAccount : public Module } // when a user quits, tidy up their metadata - virtual void OnUserQuit(userrec* user, const std::string &message) + virtual void OnUserQuit(userrec* user, const std::string &message, const std::string &oper_message) { std::string* account; user->GetExt("accountname", account); @@ -283,8 +282,9 @@ class ModuleServicesAccount : public Module if ((target_type == TYPE_USER) && (extname == "accountname")) { userrec* dest = (userrec*)target; + /* logging them out? */ - if (extdata == "") + if (extdata.empty()) { std::string* account; dest->GetExt("accountname", account); @@ -301,6 +301,8 @@ class ModuleServicesAccount : public Module if (!dest->GetExt("accountname", text)) { text = new std::string(extdata); + // remove any accidental leading/trailing spaces + trim(*text); dest->Extend("accountname", text); } } @@ -312,9 +314,9 @@ class ModuleServicesAccount : public Module ServerInstance->Modes->DelMode(m1); ServerInstance->Modes->DelMode(m2); ServerInstance->Modes->DelMode(m3); - DELETE(m1); - DELETE(m2); - DELETE(m3); + delete m1; + delete m2; + delete m3; } virtual Version GetVersion() @@ -323,27 +325,4 @@ class ModuleServicesAccount : public Module } }; - -class ModuleServicesAccountFactory : public ModuleFactory -{ - public: - ModuleServicesAccountFactory() - { - } - - ~ModuleServicesAccountFactory() - { - } - - virtual Module * CreateModule(InspIRCd* Me) - { - return new ModuleServicesAccount(Me); - } - -}; - - -extern "C" void * init_module( void ) -{ - return new ModuleServicesAccountFactory; -} +MODULE_INIT(ModuleServicesAccount)