aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules
diff options
context:
space:
mode:
authorGravatar Sadie Powell2021-04-09 01:03:30 +0100
committerGravatar Sadie Powell2021-04-09 01:03:30 +0100
commitee643ad2a5e8a1d964e43f9935836daec4995934 (patch)
tree1f10a5d185a3137ccdc10b4ed9149ebf50acbdee /src/modules
parentRemove usecountbase from ExtensionItem and refer to using pointers. (diff)
Migrate IOHookProvider from reference<> to std::shared_ptr<>.
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/extra/m_ssl_gnutls.cpp15
-rw-r--r--src/modules/extra/m_ssl_mbedtls.cpp15
-rw-r--r--src/modules/extra/m_ssl_openssl.cpp15
-rw-r--r--src/modules/m_haproxy.cpp8
-rw-r--r--src/modules/m_websocket.cpp8
5 files changed, 29 insertions, 32 deletions
diff --git a/src/modules/extra/m_ssl_gnutls.cpp b/src/modules/extra/m_ssl_gnutls.cpp
index 0cfda4a3b..c78c84bd3 100644
--- a/src/modules/extra/m_ssl_gnutls.cpp
+++ b/src/modules/extra/m_ssl_gnutls.cpp
@@ -906,7 +906,7 @@ info_done_dealloc:
}
public:
- GnuTLSIOHook(IOHookProvider* hookprov, StreamSocket* sock, unsigned int flags)
+ GnuTLSIOHook(std::shared_ptr<IOHookProvider> hookprov, StreamSocket* sock, unsigned int flags)
: SSLIOHook(hookprov)
{
gnutls_init(&sess, flags);
@@ -1093,12 +1093,12 @@ class GnuTLSIOHookProvider : public SSLIOHookProvider
void OnAccept(StreamSocket* sock, irc::sockets::sockaddrs* client, irc::sockets::sockaddrs* server) override
{
- new GnuTLSIOHook(this, sock, GNUTLS_SERVER);
+ new GnuTLSIOHook(shared_from_this(), sock, GNUTLS_SERVER);
}
void OnConnect(StreamSocket* sock) override
{
- new GnuTLSIOHook(this, sock, GNUTLS_CLIENT);
+ new GnuTLSIOHook(shared_from_this(), sock, GNUTLS_CLIENT);
}
GnuTLS::Profile& GetProfile() { return profile; }
@@ -1106,13 +1106,12 @@ class GnuTLSIOHookProvider : public SSLIOHookProvider
GnuTLS::Profile& GnuTLSIOHook::GetProfile()
{
- IOHookProvider* hookprov = prov;
- return static_cast<GnuTLSIOHookProvider*>(hookprov)->GetProfile();
+ return std::static_pointer_cast<GnuTLSIOHookProvider>(prov)->GetProfile();
}
class ModuleSSLGnuTLS : public Module
{
- typedef std::vector<reference<GnuTLSIOHookProvider> > ProfileList;
+ typedef std::vector<std::shared_ptr<GnuTLSIOHookProvider>> ProfileList;
// First member of the class, gets constructed first and destructed last
GnuTLS::Init libinit;
@@ -1144,11 +1143,11 @@ class ModuleSSLGnuTLS : public Module
continue;
}
- reference<GnuTLSIOHookProvider> prov;
+ std::shared_ptr<GnuTLSIOHookProvider> prov;
try
{
GnuTLS::Profile::Config profileconfig(name, tag);
- prov = new GnuTLSIOHookProvider(this, profileconfig);
+ prov = std::make_shared<GnuTLSIOHookProvider>(this, profileconfig);
}
catch (CoreException& ex)
{
diff --git a/src/modules/extra/m_ssl_mbedtls.cpp b/src/modules/extra/m_ssl_mbedtls.cpp
index 7b168a099..ee4038857 100644
--- a/src/modules/extra/m_ssl_mbedtls.cpp
+++ b/src/modules/extra/m_ssl_mbedtls.cpp
@@ -663,7 +663,7 @@ class mbedTLSIOHook : public SSLIOHook
}
public:
- mbedTLSIOHook(IOHookProvider* hookprov, StreamSocket* sock, bool isserver)
+ mbedTLSIOHook(std::shared_ptr<IOHookProvider> hookprov, StreamSocket* sock, bool isserver)
: SSLIOHook(hookprov)
, status(ISSL_NONE)
{
@@ -824,12 +824,12 @@ class mbedTLSIOHookProvider : public SSLIOHookProvider
void OnAccept(StreamSocket* sock, irc::sockets::sockaddrs* client, irc::sockets::sockaddrs* server) override
{
- new mbedTLSIOHook(this, sock, true);
+ new mbedTLSIOHook(shared_from_this(), sock, true);
}
void OnConnect(StreamSocket* sock) override
{
- new mbedTLSIOHook(this, sock, false);
+ new mbedTLSIOHook(shared_from_this(), sock, false);
}
mbedTLS::Profile& GetProfile() { return profile; }
@@ -837,14 +837,13 @@ class mbedTLSIOHookProvider : public SSLIOHookProvider
mbedTLS::Profile& mbedTLSIOHook::GetProfile()
{
- IOHookProvider* hookprov = prov;
- return static_cast<mbedTLSIOHookProvider*>(hookprov)->GetProfile();
+ return std::static_pointer_cast<mbedTLSIOHookProvider>(prov)->GetProfile();
}
class ModuleSSLmbedTLS : public Module
{
private:
- typedef std::vector<reference<mbedTLSIOHookProvider> > ProfileList;
+ typedef std::vector<std::shared_ptr<mbedTLSIOHookProvider>> ProfileList;
mbedTLS::Entropy entropy;
mbedTLS::CTRDRBG ctr_drbg;
@@ -876,11 +875,11 @@ class ModuleSSLmbedTLS : public Module
continue;
}
- reference<mbedTLSIOHookProvider> prov;
+ std::shared_ptr<mbedTLSIOHookProvider> prov;
try
{
mbedTLS::Profile::Config profileconfig(name, tag, ctr_drbg);
- prov = new mbedTLSIOHookProvider(this, profileconfig);
+ prov = std::make_shared<mbedTLSIOHookProvider>(this, profileconfig);
}
catch (CoreException& ex)
{
diff --git a/src/modules/extra/m_ssl_openssl.cpp b/src/modules/extra/m_ssl_openssl.cpp
index 42dd427b1..34b95b416 100644
--- a/src/modules/extra/m_ssl_openssl.cpp
+++ b/src/modules/extra/m_ssl_openssl.cpp
@@ -640,7 +640,7 @@ class OpenSSLIOHook : public SSLIOHook
friend void StaticSSLInfoCallback(const SSL* ssl, int where, int rc);
public:
- OpenSSLIOHook(IOHookProvider* hookprov, StreamSocket* sock, SSL* session)
+ OpenSSLIOHook(std::shared_ptr<IOHookProvider> hookprov, StreamSocket* sock, SSL* session)
: SSLIOHook(hookprov)
, sess(session)
, status(ISSL_NONE)
@@ -876,12 +876,12 @@ class OpenSSLIOHookProvider : public SSLIOHookProvider
void OnAccept(StreamSocket* sock, irc::sockets::sockaddrs* client, irc::sockets::sockaddrs* server) override
{
- new OpenSSLIOHook(this, sock, profile.CreateServerSession());
+ new OpenSSLIOHook(shared_from_this(), sock, profile.CreateServerSession());
}
void OnConnect(StreamSocket* sock) override
{
- new OpenSSLIOHook(this, sock, profile.CreateClientSession());
+ new OpenSSLIOHook(shared_from_this(), sock, profile.CreateClientSession());
}
OpenSSL::Profile& GetProfile() { return profile; }
@@ -889,13 +889,12 @@ class OpenSSLIOHookProvider : public SSLIOHookProvider
OpenSSL::Profile& OpenSSLIOHook::GetProfile()
{
- IOHookProvider* hookprov = prov;
- return static_cast<OpenSSLIOHookProvider*>(hookprov)->GetProfile();
+ return std::static_pointer_cast<OpenSSLIOHookProvider>(prov)->GetProfile();
}
class ModuleSSLOpenSSL : public Module
{
- typedef std::vector<reference<OpenSSLIOHookProvider> > ProfileList;
+ typedef std::vector<std::shared_ptr<OpenSSLIOHookProvider>> ProfileList;
ProfileList profiles;
@@ -921,10 +920,10 @@ class ModuleSSLOpenSSL : public Module
continue;
}
- reference<OpenSSLIOHookProvider> prov;
+ std::shared_ptr<OpenSSLIOHookProvider> prov;
try
{
- prov = new OpenSSLIOHookProvider(this, name, tag);
+ prov = std::make_shared<OpenSSLIOHookProvider>(this, name, tag);
}
catch (CoreException& ex)
{
diff --git a/src/modules/m_haproxy.cpp b/src/modules/m_haproxy.cpp
index e9a738b9e..42f5a9fc8 100644
--- a/src/modules/m_haproxy.cpp
+++ b/src/modules/m_haproxy.cpp
@@ -375,7 +375,7 @@ class HAProxyHook : public IOHookMiddle
}
public:
- HAProxyHook(IOHookProvider* Prov, StreamSocket* sock, UserCertificateAPI& api)
+ HAProxyHook(std::shared_ptr<IOHookProvider> Prov, StreamSocket* sock, UserCertificateAPI& api)
: IOHookMiddle(Prov)
, address_length(0)
, sslapi(api)
@@ -417,18 +417,18 @@ class HAProxyHook : public IOHookMiddle
void HAProxyHookProvider::OnAccept(StreamSocket* sock, irc::sockets::sockaddrs* client, irc::sockets::sockaddrs* server)
{
- new HAProxyHook(this, sock, sslapi);
+ new HAProxyHook(shared_from_this(), sock, sslapi);
}
class ModuleHAProxy : public Module
{
private:
- reference<HAProxyHookProvider> hookprov;
+ std::shared_ptr<HAProxyHookProvider> hookprov;
public:
ModuleHAProxy()
: Module(VF_VENDOR, "Allows IRC connections to be made using reverse proxies that implement the HAProxy PROXY protocol.")
- , hookprov(new HAProxyHookProvider(this))
+ , hookprov(std::make_shared<HAProxyHookProvider>(this))
{
}
};
diff --git a/src/modules/m_websocket.cpp b/src/modules/m_websocket.cpp
index c31aa91b7..38de3bfdb 100644
--- a/src/modules/m_websocket.cpp
+++ b/src/modules/m_websocket.cpp
@@ -410,7 +410,7 @@ class WebSocketHook : public IOHookMiddle
}
public:
- WebSocketHook(IOHookProvider* Prov, StreamSocket* sock, WebSocketConfig& cfg)
+ WebSocketHook(std::shared_ptr<IOHookProvider> Prov, StreamSocket* sock, WebSocketConfig& cfg)
: IOHookMiddle(Prov)
, config(cfg)
{
@@ -494,20 +494,20 @@ class WebSocketHook : public IOHookMiddle
void WebSocketHookProvider::OnAccept(StreamSocket* sock, irc::sockets::sockaddrs* client, irc::sockets::sockaddrs* server)
{
- new WebSocketHook(this, sock, config);
+ new WebSocketHook(shared_from_this(), sock, config);
}
class ModuleWebSocket : public Module
{
private:
dynamic_reference_nocheck<HashProvider> hash;
- reference<WebSocketHookProvider> hookprov;
+ std::shared_ptr<WebSocketHookProvider> hookprov;
public:
ModuleWebSocket()
: Module(VF_VENDOR, "Allows WebSocket clients to connect to the IRC server.")
, hash(this, "hash/sha1")
- , hookprov(new WebSocketHookProvider(this))
+ , hookprov(std::make_shared<WebSocketHookProvider>(this))
{
sha1 = &hash;
}