#include "inspircd.h"
+#include "modules/callerid.h"
enum
{
irc::commasepstream s(value);
std::string tok;
if (s.GetToken(tok))
- dat->lastnotify = ConvToInt(tok);
+ dat->lastnotify = ConvToNum<time_t>(tok);
while (s.GetToken(tok))
{
}
};
+class CallerIDAPIImpl : public CallerID::APIBase
+{
+ private:
+ CallerIDExtInfo& ext;
+
+ public:
+ CallerIDAPIImpl(Module* Creator, CallerIDExtInfo& Ext)
+ : CallerID::APIBase(Creator)
+ , ext(Ext)
+ {
+ }
+
+ bool IsOnAcceptList(User* source, User* target) CXX11_OVERRIDE
+ {
+ callerid_data* dat = ext.get(target, true);
+ return dat->accepting.count(source);
+ }
+};
+
+
class ModuleCallerID : public Module
{
CommandAccept cmd;
+ CallerIDAPIImpl api;
SimpleUserModeHandler myumode;
// Configuration variables:
public:
ModuleCallerID()
: cmd(this)
+ , api(this, cmd.extInfo)
, myumode(this, "callerid", 'g')
{
}
void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("callerid");
- cmd.maxaccepts = tag->getUInt("maxaccepts", 16);
+ cmd.maxaccepts = tag->getUInt("maxaccepts", 30);
tracknick = tag->getBool("tracknick");
notify_cooldown = tag->getDuration("cooldown", 60);
}