* ---------------------------------------------------
*/
-#include <stdio.h>
+#include "inspircd.h"
#include "users.h"
#include "channels.h"
#include "modules.h"
#include "dns.h"
-#include "inspircd.h"
/* $ModDesc: Povides a proof-of-concept test /WOOT command */
{
bool fw;
public:
- MyV6Resolver(Module* me, const std::string &source, bool forward) : Resolver(ServerInstance, source, forward ? DNS_QUERY_AAAA : DNS_QUERY_PTR6, me)
+ MyV6Resolver(InspIRCd* Instance, Module* me, const std::string &source, bool forward, bool &cached) : Resolver(Instance, source, forward ? DNS_QUERY_AAAA : DNS_QUERY_PTR6, cached, me)
{
fw = forward;
}
- virtual void OnLookupComplete(const std::string &result, unsigned int ttl)
+ virtual void OnLookupComplete(const std::string &result, unsigned int ttl, bool cached)
{
- ServerInstance->Log(DEBUG,"*** RESOLVER COMPLETED %s LOOKUP, IP IS: '%s' TTL=%lu",fw ? "FORWARD" : "REVERSE", result.c_str(), ttl);
+ ServerInstance->Log(DEBUG,"*** RESOLVER COMPLETED %s LOOKUP, IP IS: '%s' TTL=%lu CACHED=%d",fw ? "FORWARD" : "REVERSE", result.c_str(), ttl, cached);
}
virtual void OnError(ResolverError e, const std::string &errormessage)
* do it for us as required.*/
try
{
- MyV6Resolver* r = new MyV6Resolver(Creator, "shake.stacken.kth.se", true);
- ServerInstance->AddResolver(r);
- r = new MyV6Resolver(Creator, "2001:6b0:1:ea:202:a5ff:fecd:13a6", false);
- ServerInstance->AddResolver(r);
+ bool cached;
+ MyV6Resolver* r = new MyV6Resolver(ServerInstance, Creator, "shake.stacken.kth.se", true, cached);
+ ServerInstance->AddResolver(r, cached);
+ r = new MyV6Resolver(ServerInstance, Creator, "2001:6b0:1:ea:202:a5ff:fecd:13a6", false, cached);
+ ServerInstance->AddResolver(r, cached);
}
catch (ModuleException& e)
{
cmd_woot* newcommand;
public:
ModuleTestCommand(InspIRCd* Me)
- : Module::Module(Me)
+ : Module(Me)
{
// Create a new command
void Implements(char* List)
{
- List[I_OnUserJoin] = 1;
}
- virtual void OnUserJoin(userrec* user, chanrec* channel)
- {
- /* This is an example, we do nothing here */
- }
-
virtual ~ModuleTestCommand()
{
delete newcommand;
}
};
-
-class ModuleTestCommandFactory : public ModuleFactory
-{
- public:
- ModuleTestCommandFactory()
- {
- }
-
- ~ModuleTestCommandFactory()
- {
- }
-
- virtual Module * CreateModule(InspIRCd* Me)
- {
- return new ModuleTestCommand(Me);
- }
-
-};
-
-
-extern "C" void * init_module( void )
-{
- return new ModuleTestCommandFactory;
-}
-
+MODULE_INIT(ModuleTestCommand)