summaryrefslogtreecommitdiff
path: root/src/modules/transport.h
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-10-08 23:29:21 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-10-08 23:29:21 +0000
commit7e843c22e16c81054bad18073d24fe1a07026431 (patch)
tree44ca0213c7d7a80270b993fec1fbed275ec56424 /src/modules/transport.h
parentc440038736f749a56dbac1badee5b2f099286117 (diff)
Update Event and Request APIs
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11808 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/transport.h')
-rw-r--r--src/modules/transport.h206
1 files changed, 0 insertions, 206 deletions
diff --git a/src/modules/transport.h b/src/modules/transport.h
deleted file mode 100644
index ceb16cb73..000000000
--- a/src/modules/transport.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/* +------------------------------------+
- * | Inspire Internet Relay Chat Daemon |
- * +------------------------------------+
- *
- * InspIRCd: (C) 2002-2009 InspIRCd Development Team
- * See: http://wiki.inspircd.org/Credits
- *
- * This program is free but copyrighted software; see
- * the file COPYING for details.
- *
- * ---------------------------------------------------
- */
-
-#ifndef __TRANSPORT_H__
-#define __TRANSPORT_H__
-
-#include <map>
-#include <string>
-
-/** ssl_cert is a class which abstracts SSL certificate
- * and key information.
- *
- * Because gnutls and openssl represent key information in
- * wildly different ways, this class allows it to be accessed
- * in a unified manner. These classes are attached to ssl-
- * connected local users using SSLCertExt
- */
-class ssl_cert
-{
- public:
- std::string dn;
- std::string issuer;
- std::string error;
- std::string fingerprint;
- bool trusted, invalid, unknownsigner, revoked;
-
- /** Get certificate distinguished name
- * @return Certificate DN
- */
- const std::string& GetDN()
- {
- return dn;
- }
-
- /** Get Certificate issuer
- * @return Certificate issuer
- */
- const std::string& GetIssuer()
- {
- return issuer;
- }
-
- /** Get error string if an error has occured
- * @return The error associated with this users certificate,
- * or an empty string if there is no error.
- */
- const std::string& GetError()
- {
- return error;
- }
-
- /** Get key fingerprint.
- * @return The key fingerprint as a hex string.
- */
- const std::string& GetFingerprint()
- {
- return fingerprint;
- }
-
- /** Get trust status
- * @return True if this is a trusted certificate
- * (the certificate chain validates)
- */
- bool IsTrusted()
- {
- return trusted;
- }
-
- /** Get validity status
- * @return True if the certificate itself is
- * correctly formed.
- */
- bool IsInvalid()
- {
- return invalid;
- }
-
- /** Get signer status
- * @return True if the certificate appears to be
- * self-signed.
- */
- bool IsUnknownSigner()
- {
- return unknownsigner;
- }
-
- /** Get revokation status.
- * @return True if the certificate is revoked.
- * Note that this only works properly for GnuTLS
- * right now.
- */
- bool IsRevoked()
- {
- return revoked;
- }
-
- std::string GetMetaLine()
- {
- std::stringstream value;
- bool hasError = error.length();
- value << (IsInvalid() ? "v" : "V") << (IsTrusted() ? "T" : "t") << (IsRevoked() ? "R" : "r")
- << (IsUnknownSigner() ? "s" : "S") << (hasError ? "E" : "e") << " ";
- if (hasError)
- value << GetError();
- else
- value << GetFingerprint() << " " << GetDN() << " " << GetIssuer();
- return value.str();
- }
-};
-
-/** Used to represent a request to a transport provider module
- */
-class ISHRequest : public Request
-{
- public:
- BufferedSocket* Sock;
-
- ISHRequest(Module* Me, Module* Target, const char* rtype, BufferedSocket* sock) : Request(Me, Target, rtype), Sock(sock)
- {
- }
-};
-
-/** Used to represent a request to attach a cert to an BufferedSocket
- */
-class BufferedSocketAttachCertRequest : public ISHRequest
-{
- public:
- /** Initialize the request as an attach cert message */
- BufferedSocketAttachCertRequest(BufferedSocket* is, Module* Me, Module* Target) : ISHRequest(Me, Target, "IS_ATTACH", is)
- {
- }
-};
-
-/** Used to check if a handshake is complete on an BufferedSocket yet
- */
-class BufferedSocketHSCompleteRequest : public ISHRequest
-{
- public:
- /** Initialize the request as a 'handshake complete?' message */
- BufferedSocketHSCompleteRequest(BufferedSocket* is, Module* Me, Module* Target) : ISHRequest(Me, Target, "IS_HSDONE", is)
- {
- }
-};
-
-/** Used to hook a transport provider to an BufferedSocket
- */
-class BufferedSocketHookRequest : public ISHRequest
-{
- public:
- /** Initialize request as a hook message */
- BufferedSocketHookRequest(BufferedSocket* is, Module* Me, Module* Target) : ISHRequest(Me, Target, "IS_HOOK", is)
- {
- }
-};
-
-/** Used to unhook a transport provider from an BufferedSocket
- */
-class BufferedSocketUnhookRequest : public ISHRequest
-{
- public:
- /** Initialize request as an unhook message */
- BufferedSocketUnhookRequest(BufferedSocket* is, Module* Me, Module* Target) : ISHRequest(Me, Target, "IS_UNHOOK", is)
- {
- }
-};
-
-class BufferedSocketNameRequest : public ISHRequest
-{
- public:
- /** Initialize request as a get name message */
- BufferedSocketNameRequest(Module* Me, Module* Target) : ISHRequest(Me, Target, "IS_NAME", NULL)
- {
- }
-};
-
-struct BufferedSocketCertificateRequest : public Request
-{
- Extensible* const item;
- ssl_cert* cert;
- BufferedSocketCertificateRequest(Extensible* is, Module* Me, Module* Target)
- : Request(Me, Target, "GET_CERT"), item(is), cert(NULL)
- {
- }
-};
-
-struct BufferedSocketFingerprintSubmission : public Request
-{
- Extensible* const item;
- ssl_cert* const cert;
- BufferedSocketFingerprintSubmission(Extensible* is, Module* Me, Module* Target, ssl_cert* Cert)
- : Request(Me, Target, "SET_CERT"), item(is), cert(Cert)
- {
- }
-};
-
-#endif