, postsize(0)
, waitingcull(false)
{
- ServerInstance->Timers.AddTimer(this);
+ if ((!via->iohookprovs.empty()) && (via->iohookprovs.back()))
+ {
+ via->iohookprovs.back()->OnAccept(this, client, server);
+ // IOHook may have errored
+ if (!getError().empty())
+ {
+ AddToCull();
+ return;
+ }
+ }
- if (via->iohookprov)
- via->iohookprov->OnAccept(this, client, server);
+ ServerInstance->Timers.AddTimer(this);
}
~HttpServerSocket()
return MOD_RES_ALLOW;
}
+ void OnUnloadModule(Module* mod)
+ {
+ for (insp::intrusive_list<HttpServerSocket>::const_iterator i = sockets.begin(); i != sockets.end(); )
+ {
+ HttpServerSocket* sock = *i;
+ ++i;
+ if (sock->GetModHook(mod))
+ {
+ sock->cull();
+ delete sock;
+ }
+ }
+ }
+
CullResult cull() CXX11_OVERRIDE
{
for (insp::intrusive_list<HttpServerSocket>::const_iterator i = sockets.begin(); i != sockets.end(); ++i)