*/
#include "inspircd.h"
-#include "transport.h"
+#include "ssl.h"
/* $ModDesc: Provides SSL metadata, including /WHOIS information and /SSLINFO command */
class SSLCertExt : public ExtensionItem {
public:
SSLCertExt(Module* parent) : ExtensionItem("ssl_cert", parent) {}
- ssl_cert* get(const Extensible* item)
+ ssl_cert* get(const Extensible* item) const
{
return static_cast<ssl_cert*>(get_raw(item));
}
delete old;
}
- std::string serialize(SerializeFormat format, const Extensible* container, void* item)
+ std::string serialize(SerializeFormat format, const Extensible* container, void* item) const
{
return static_cast<ssl_cert*>(item)->GetMetaLine();
}
CommandSSLInfo cmd;
public:
- ModuleSSLInfo(InspIRCd* Me)
- : Module(Me), cmd(this)
+ ModuleSSLInfo()
+ : cmd(this)
{
ServerInstance->AddCommand(&cmd);
- Extensible::Register(&cmd.CertExt);
+ ServerInstance->Extensions.Register(&cmd.CertExt);
Implementation eventlist[] = { I_OnWhois, I_OnPreCommand };
ServerInstance->Modules->Attach(eventlist, this, 2);
+ ServerInstance->Modules->PublishInterface("SSLCertInfo", this);
}
~ModuleSSLInfo()
{
+ ServerInstance->Modules->UnpublishInterface("SSLCertInfo", this);
}
Version GetVersion()
if ((pcmd == "OPER") && (validated))
{
- ConfigReader cf(ServerInstance);
+ ConfigReader cf;
char TheHost[MAXBUF];
char TheIP[MAXBUF];
std::string LoginName;
return MOD_RES_PASSTHRU;
}
- const char* OnRequest(Request* request)
+ void OnRequest(Request& request)
{
- if (strcmp("GET_CERT", request->GetId()) == 0)
+ if (strcmp("GET_CERT", request.id) == 0)
{
- BufferedSocketCertificateRequest* req = static_cast<BufferedSocketCertificateRequest*>(request);
- req->cert = cmd.CertExt.get(req->item);
+ SSLCertificateRequest& req = static_cast<SSLCertificateRequest&>(request);
+ req.cert = cmd.CertExt.get(req.item);
}
- else if (strcmp("SET_CERT", request->GetId()) == 0)
+ else if (strcmp("SET_CERT", request.id) == 0)
{
- BufferedSocketFingerprintSubmission* req = static_cast<BufferedSocketFingerprintSubmission*>(request);
- cmd.CertExt.set(req->item, req->cert);
+ SSLCertSubmission& req = static_cast<SSLCertSubmission&>(request);
+ cmd.CertExt.set(req.item, req.cert);
}
- return NULL;
}
};