configtag(ctag), extItem("listbase_mode_" + name + "_list", Creator)
{
list = true;
- this->DoRehash();
- ServerInstance->Extensions.Register(&extItem);
}
/** See mode.h
if (limit.mask.size() && limit.limit > 0)
chanlimits.push_back(limit);
}
- if (chanlimits.size() == 0)
- {
- ListLimit limit;
- limit.mask = "*";
- limit.limit = 64;
- chanlimits.push_back(limit);
- }
+
+ // Add the default entry. This is inserted last so if the user specifies a
+ // wildcard record in the config it will take precedence over this entry.
+ ListLimit limit;
+ limit.mask = "*";
+ limit.limit = 64;
+ chanlimits.push_back(limit);
}
/** Populate the Implements list with the correct events for a List Mode
*/
virtual void DoImplements(Module* m)
{
+ ServerInstance->Modules->AddService(extItem);
+ this->DoRehash();
Implementation eventlist[] = { I_OnSyncChannel, I_OnRehash };
- ServerInstance->Modules->Attach(eventlist, m, 2);
+ ServerInstance->Modules->Attach(eventlist, m, sizeof(eventlist)/sizeof(Implementation));
}
/** Handle the list mode.
return MODEACTION_DENY;
}
}
+ else
+ break;
}
}
if (parameter == it->mask)
{
el->erase(it);
- if (el->size() == 0)
+ if (el->empty())
{
extItem.unset(channel);
}