mirror of
https://github.com/anope/anope.git
synced 2026-07-04 11:03:14 +02:00
Cleanup ok if modules with pending identify requests are unloaded
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
#include "module.h"
|
||||
#include "xmlrpc.h"
|
||||
|
||||
static Module *me;
|
||||
|
||||
class XMLRPCIdentifyRequest : public IdentifyRequest
|
||||
{
|
||||
XMLRPCRequest request;
|
||||
@@ -8,7 +10,7 @@ class XMLRPCIdentifyRequest : public IdentifyRequest
|
||||
dynamic_reference<XMLRPCClientSocket> source;
|
||||
|
||||
public:
|
||||
XMLRPCIdentifyRequest(XMLRPCRequest& req, XMLRPCServiceInterface* iface, XMLRPCClientSocket* s, const Anope::string &acc, const Anope::string &pass) : IdentifyRequest(acc, pass), request(req), xinterface(iface), source(s) { }
|
||||
XMLRPCIdentifyRequest(Module *m, XMLRPCRequest& req, XMLRPCServiceInterface* iface, XMLRPCClientSocket* s, const Anope::string &acc, const Anope::string &pass) : IdentifyRequest(m, acc, pass), request(req), xinterface(iface), source(s) { }
|
||||
|
||||
void OnSuccess() anope_override
|
||||
{
|
||||
@@ -104,7 +106,7 @@ class MyXMLRPCEvent : public XMLRPCEvent
|
||||
request->reply("error", "Invalid parameters");
|
||||
else
|
||||
{
|
||||
XMLRPCIdentifyRequest *req = new XMLRPCIdentifyRequest(*request, iface, source, username, password);
|
||||
XMLRPCIdentifyRequest *req = new XMLRPCIdentifyRequest(me, *request, iface, source, username, password);
|
||||
FOREACH_MOD(I_OnCheckAuthentication, OnCheckAuthentication(NULL, req));
|
||||
req->Dispatch();
|
||||
}
|
||||
@@ -248,6 +250,8 @@ class ModuleXMLRPCMain : public Module
|
||||
if (!xmlrpc)
|
||||
throw ModuleException("Unable to find xmlrpc reference, is m_xmlrpc loaded?");
|
||||
|
||||
me = this;
|
||||
|
||||
xmlrpc->Register(&stats);
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ class WebpanelRequest : public IdentifyRequest
|
||||
TemplateFileServer::Replacements replacements;
|
||||
|
||||
public:
|
||||
WebpanelRequest(HTTPReply &r, HTTPMessage &m, HTTPProvider *s, const Anope::string &p_n, HTTPClient *c, TemplateFileServer::Replacements &re, const Anope::string &user, const Anope::string &pass) : IdentifyRequest(user, pass), reply(r), message(m), server(s), page_name(p_n), client(c), replacements(re) { }
|
||||
WebpanelRequest(Module *o, HTTPReply &r, HTTPMessage &m, HTTPProvider *s, const Anope::string &p_n, HTTPClient *c, TemplateFileServer::Replacements &re, const Anope::string &user, const Anope::string &pass) : IdentifyRequest(o, user, pass), reply(r), message(m), server(s), page_name(p_n), client(c), replacements(re) { }
|
||||
|
||||
void OnSuccess() anope_override
|
||||
{
|
||||
@@ -86,7 +86,7 @@ bool WebCPanel::Index::OnRequest(HTTPProvider *server, const Anope::string &page
|
||||
{
|
||||
// Rate limit check.
|
||||
|
||||
WebpanelRequest *req = new WebpanelRequest(reply, message, server, page_name, client, replacements, user, pass);
|
||||
WebpanelRequest *req = new WebpanelRequest(me, reply, message, server, page_name, client, replacements, user, pass);
|
||||
FOREACH_MOD(I_OnCheckAuthentication, OnCheckAuthentication(NULL, req));
|
||||
req->Dispatch();
|
||||
return false;
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include "webcpanel.h"
|
||||
|
||||
Module *me;
|
||||
Anope::string provider_name, template_name, template_base, page_title;
|
||||
|
||||
class ModuleWebCPanel : public Module
|
||||
@@ -45,6 +46,8 @@ class ModuleWebCPanel : public Module
|
||||
{
|
||||
this->SetAuthor("Anope");
|
||||
|
||||
me = this;
|
||||
|
||||
ConfigReader reader;
|
||||
provider_name = reader.ReadValue("webcpanel", "server", "httpd/main", 0);
|
||||
template_name = reader.ReadValue("webcpanel", "template", "template", 0);
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
#include "static_fileserver.h"
|
||||
#include "template_fileserver.h"
|
||||
|
||||
extern Module *me;
|
||||
|
||||
extern Anope::string provider_name, template_name, template_base, page_title;
|
||||
|
||||
struct SubSection
|
||||
|
||||
Reference in New Issue
Block a user