/*
* InspIRCd -- Internet Relay Chat Daemon
*
- * Copyright (C) 2013 Adam <Adam@anope.org>
- * Copyright (C) 2003-2013 Anope Team <team@anope.org>
+ * Copyright (C) 2017, 2019, 2021 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2014-2015 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2013, 2015-2016 Adam <Adam@anope.org>
*
* This file is part of InspIRCd. InspIRCd is free software: you can
* redistribute it and/or modify it under the terms of the GNU General Public
QUERY_CNAME = 5,
/* Reverse DNS lookup */
QUERY_PTR = 12,
+ /* TXT */
+ QUERY_TXT = 16,
/* IPv6 AAAA lookup */
QUERY_AAAA = 28
};
enum Error
{
ERROR_NONE,
+ ERROR_DISABLED,
ERROR_UNKNOWN,
ERROR_UNLOADED,
ERROR_TIMEDOUT,
virtual void Process(Request* req) = 0;
virtual void RemoveRequest(Request* req) = 0;
virtual std::string GetErrorStr(Error) = 0;
+ virtual std::string GetTypeStr(QueryType) = 0;
};
/** A DNS query.
/* Use result cache if available */
bool use_cache;
/* Request id */
- RequestId id;
- /* Creator of this request */
+ RequestId id;
+ /* Creator of this request */
Module* const creator;
- Request(Manager* mgr, Module* mod, const std::string& addr, QueryType qt, bool usecache = true)
- : Timer((ServerInstance->Config->dns_timeout ? ServerInstance->Config->dns_timeout : 5))
+ Request(Manager* mgr, Module* mod, const std::string& addr, QueryType qt, bool usecache = true, unsigned int timeout = 0)
+ : Timer(timeout ? timeout : ServerInstance->Config->ConfValue("dns")->getDuration("timeout", 5, 1))
, manager(mgr)
, question(addr, qt)
, use_cache(usecache)
}
/** Called when this request succeeds
- * @param r The query sent back from the nameserver
+ * @param req The query sent back from the nameserver
*/
virtual void OnLookupComplete(const Query* req) = 0;
/** Called when this request fails or times out.
- * @param r The query sent back from the nameserver, check the error code.
+ * @param req The query sent back from the nameserver, check the error code.
*/
virtual void OnError(const Query* req) { }
/** Used to time out the query, calls OnError and asks the TimerManager
* to delete this request
*/
- bool Tick(time_t now)
+ bool Tick(time_t now) CXX11_OVERRIDE
{
Query rr(this->question);
rr.error = ERROR_TIMEDOUT;