m_sslinfo.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "inspircd.h"
00015 #include "transport.h"
00016
00017
00018
00019
00022 class cmd_sslinfo : public Command
00023 {
00024 public:
00025 cmd_sslinfo (InspIRCd* Instance) : Command(Instance,"SSLINFO", 0, 1)
00026 {
00027 this->source = "m_sslinfo.so";
00028 this->syntax = "<nick>";
00029 }
00030
00031 CmdResult Handle (const std::vector<std::string> ¶meters, User *user)
00032 {
00033 User* target = ServerInstance->FindNick(parameters[0]);
00034 ssl_cert* cert;
00035
00036 if (target)
00037 {
00038 if (target->GetExt("ssl_cert", cert))
00039 {
00040 if (cert->GetError().length())
00041 {
00042 user->WriteServ("NOTICE %s :*** Error: %s", user->nick.c_str(), cert->GetError().c_str());
00043 }
00044 user->WriteServ("NOTICE %s :*** Distinguised Name: %s", user->nick.c_str(), cert->GetDN().c_str());
00045 user->WriteServ("NOTICE %s :*** Issuer: %s", user->nick.c_str(), cert->GetIssuer().c_str());
00046 user->WriteServ("NOTICE %s :*** Key Fingerprint: %s", user->nick.c_str(), cert->GetFingerprint().c_str());
00047 return CMD_SUCCESS;
00048 }
00049 else
00050 {
00051 user->WriteServ("NOTICE %s :*** No SSL certificate information for this user.", user->nick.c_str());
00052 return CMD_FAILURE;
00053 }
00054 }
00055 else
00056 user->WriteNumeric(ERR_NOSUCHNICK, "%s %s :No such nickname", user->nick.c_str(), parameters[0].c_str());
00057
00058 return CMD_FAILURE;
00059 }
00060 };
00061
00062 class ModuleSSLInfo : public Module
00063 {
00064 cmd_sslinfo* newcommand;
00065 public:
00066 ModuleSSLInfo(InspIRCd* Me)
00067 : Module(Me)
00068 {
00069
00070 newcommand = new cmd_sslinfo(ServerInstance);
00071 ServerInstance->AddCommand(newcommand);
00072
00073 }
00074
00075
00076 virtual ~ModuleSSLInfo()
00077 {
00078 }
00079
00080 virtual Version GetVersion()
00081 {
00082 return Version("$Id: m_sslinfo.cpp 10622 2008-10-04 21:27:52Z brain $", VF_VENDOR, API_VERSION);
00083 }
00084 };
00085
00086 MODULE_INIT(ModuleSSLInfo)
00087