+ void OnBackgroundTimer(time_t curtime)
+ {
+ if (!timeoutsec)
+ return;
+
+ time_t oldest_allowed = curtime - timeoutsec;
+ for (std::set<HttpServerSocket*>::const_iterator i = sockets.begin(); i != sockets.end(); )
+ {
+ HttpServerSocket* sock = *i;
+ ++i;
+ if (sock->createtime < oldest_allowed)
+ {
+ sock->cull();
+ delete sock;
+ }
+ }
+ }
+
+ void OnUnloadModule(Module* mod)
+ {
+ for (std::set<HttpServerSocket*>::const_iterator i = sockets.begin(); i != sockets.end(); )
+ {
+ HttpServerSocket* sock = *i;
+ ++i;
+ if (sock->GetIOHook() == mod)
+ {
+ sock->cull();
+ delete sock;
+ }
+ }
+ }