X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_callerid.cpp;h=29ba7fd6022f2c113a1e7365519f35df5012115f;hb=f25c4b7a2263f5f3ce9bb41ba56b43c0d3a6d124;hp=1b9492ce14ecdbacd0cf33e0176982acc124c691;hpb=6e85701ecb09604f2c87010683638ec0446cc515;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_callerid.cpp b/src/modules/m_callerid.cpp index 1b9492ce1..29ba7fd60 100644 --- a/src/modules/m_callerid.cpp +++ b/src/modules/m_callerid.cpp @@ -56,14 +56,14 @@ class callerid_data : public classbase } } - std::string ToString(bool displayable) const + std::string ToString(Module* proto) const { std::ostringstream oss; oss << lastnotify; for (std::set::const_iterator i = accepting.begin(); i != accepting.end(); ++i) { // Encode UIDs. - oss << "," << (displayable ? (*i)->nick : (*i)->uuid); + oss << "," << proto->ProtoTranslate(*i); } oss << std::ends; return oss.str(); @@ -430,24 +430,21 @@ public: RemoveData(u); } - virtual void OnSyncUserMetaData(User* user, Module* proto, void* opaque, const std::string& extname, bool displayable) + virtual void OnSyncUser(User* user, Module* proto, void* opaque) { - if (extname == "callerid_data") + callerid_data* dat = GetData(user, false); + if (dat) { - callerid_data* dat = GetData(user, false); - if (dat) - { - std::string str = dat->ToString(displayable); - proto->ProtoSendMetaData(opaque, TYPE_USER, user, extname, str); - } + std::string str = dat->ToString(proto); + proto->ProtoSendMetaData(opaque, user, "callerid_data", str); } } - virtual void OnDecodeMetaData(int target_type, void* target, const std::string& extname, const std::string& extdata) + virtual void OnDecodeMetaData(Extensible* target, const std::string& extname, const std::string& extdata) { - if (target_type == TYPE_USER && extname == "callerid_data") + User* u = dynamic_cast(target); + if (u && extname == "callerid_data") { - User* u = (User*)target; callerid_data* dat = new callerid_data(extdata, ServerInstance); u->Extend("callerid_data", dat); }