- virtual void OnCleanup(int target_type, void* item)
- {
- if(target_type == TYPE_USER)
- {
- User* user = (User*)item;
- std::string* realhost;
- std::string* realip;
-
- if(user->GetExt("cgiirc_realhost", realhost))
- {
- delete realhost;
- user->Shrink("cgiirc_realhost");
- }
-
- if(user->GetExt("cgiirc_realip", realip))
- {
- delete realip;
- user->Shrink("cgiirc_realip");
- }
- }
- }
-
- virtual void OnSyncUser(User* user, Module* proto, void* opaque)
- {
- std::string* data;
- if (user->GetExt("cgiirc_realhost", data))
- proto->ProtoSendMetaData(opaque, user, "cgiirc_realhost", *data);
- if (user->GetExt("cgiirc_realip", data))
- proto->ProtoSendMetaData(opaque, user, "cgiirc_realip", *data);
- }
-
- virtual void OnDecodeMetaData(Extensible* target, const std::string &extname, const std::string &extdata)
- {
- User* dest = dynamic_cast<User*>(target);
- std::string* bleh;
- if(dest && ((extname == "cgiirc_realhost") || (extname == "cgiirc_realip")) && (!dest->GetExt(extname, bleh)))
- {
- dest->Extend(extname, new std::string(extdata));
- }
- }
-
- virtual void OnUserDisconnect(User* user)