]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
m_spanningtree Handle unload in resolvers
authorAttila Molnar <attilamolnar@hush.com>
Thu, 25 Aug 2016 16:01:50 +0000 (18:01 +0200)
committerAttila Molnar <attilamolnar@hush.com>
Thu, 25 Aug 2016 16:01:50 +0000 (18:01 +0200)
src/modules/m_spanningtree/resolvers.cpp

index 6682b8dbed7a296cb1f51c3171d78b6d9d12dfba..1228e375feace036c2ad9389eaa6c05f2aa8dc54 100644 (file)
@@ -73,7 +73,12 @@ void ServernameResolver::OnLookupComplete(const DNS::Query *r)
 
 void ServernameResolver::OnError(const DNS::Query *r)
 {
-       /* Ooops! */
+       if (r->error == DNS::ERROR_UNLOADED)
+       {
+               // We're being unloaded, skip the snotice and ConnectServer() below to prevent autoconnect creating new sockets
+               return;
+       }
+
        if (query == DNS::QUERY_AAAA)
        {
                ServernameResolver* snr = new ServernameResolver(this->manager, host, MyLink, DNS::QUERY_A, myautoconnect);
@@ -115,6 +120,7 @@ void SecurityIPResolver::OnLookupComplete(const DNS::Query *r)
 
 void SecurityIPResolver::OnError(const DNS::Query *r)
 {
+       // This can be called because of us being unloaded but we don't have to do anything differently
        if (query == DNS::QUERY_AAAA)
        {
                SecurityIPResolver* res = new SecurityIPResolver(mine, this->manager, host, MyLink, DNS::QUERY_A);