*/
#include "inspircd.h"
-#include "transport.h"
+#include "ssl.h"
/* $ModDesc: Provides SSL metadata, including /WHOIS information and /SSLINFO command */
public:
SSLCertExt CertExt;
- CommandSSLInfo(InspIRCd* Instance, Module* Creator) : Command(Instance, Creator, "SSLINFO", 0, 1), CertExt(Creator)
+ CommandSSLInfo(Module* Creator) : Command(Creator, "SSLINFO", 1), CertExt(Creator)
{
this->syntax = "<nick>";
}
CommandSSLInfo cmd;
public:
- ModuleSSLInfo(InspIRCd* Me)
- : Module(Me), cmd(Me, this)
+ ModuleSSLInfo()
+ : cmd(this)
{
ServerInstance->AddCommand(&cmd);
Extensible::Register(&cmd.CertExt);
- Implementation eventlist[] = { I_OnSyncUser, I_OnDecodeMetaData, I_OnWhois, I_OnPreCommand };
- ServerInstance->Modules->Attach(eventlist, this, 4);
+ Implementation eventlist[] = { I_OnWhois, I_OnPreCommand };
+ ServerInstance->Modules->Attach(eventlist, this, 2);
+ ServerInstance->Modules->PublishInterface("SSLCertInfo", this);
}
- virtual ~ModuleSSLInfo()
+ ~ModuleSSLInfo()
{
+ ServerInstance->Modules->UnpublishInterface("SSLCertInfo", this);
}
- virtual Version GetVersion()
+ Version GetVersion()
{
- return Version("SSL Certificate Utilities", VF_VENDOR);
+ return Version("SSL Certificate Utilities", VF_VENDOR | VF_SERVICEPROVIDER);
}
- virtual void OnWhois(User* source, User* dest)
+ void OnWhois(User* source, User* dest)
{
if (cmd.CertExt.get(dest))
{
return false;
}
- virtual ModResult OnPreCommand(std::string &command, std::vector<std::string> ¶meters, User *user, bool validated, const std::string &original_line)
+ ModResult OnPreCommand(std::string &command, std::vector<std::string> ¶meters, User *user, bool validated, const std::string &original_line)
{
irc::string pcmd = command.c_str();
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;
}
};