X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_services_account.cpp;h=cff0d7698f236165e4f5543cd3566cdc0c39136f;hb=78fa4165c90088523e623ab2b64ca0db0d19def0;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..cff0d7698 100644 --- a/src/modules/m_services_account.cpp +++ b/src/modules/m_services_account.cpp @@ -11,11 +11,11 @@ * --------------------------------------------------- */ +#include "inspircd.h" #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 +116,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 +225,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 +235,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 +246,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 +286,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 +305,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); } } @@ -323,27 +329,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)