- void Implements(char* List)
- {
- List[I_OnEvent] = List[I_OnRequest] = List[I_OnChannelDelete] = List[I_OnUserJoin] = List[I_OnUserPart] = List[I_OnUserQuit] = 1;
+ for (ProtoServerList::iterator b = sl.begin(); b != sl.end(); ++b)
+ {
+ data << "<server>";
+ data << "<servername>" << b->servername << "</servername>";
+ data << "<parentname>" << b->parentname << "</parentname>";
+ data << "<gecos>" << b->gecos << "</gecos>";
+ data << "<usercount>" << b->usercount << "</usercount>";
+// This is currently not implemented, so, commented out.
+// data << "<opercount>" << b->opercount << "</opercount>";
+ data << "<lagmillisecs>" << b->latencyms << "</lagmillisecs>";
+ data << "</server>";
+ }
+
+ data << "</serverlist></inspircdstats>";
+
+ /* Send the document back to m_httpd */
+ HTTPDocumentResponse response(this, *http, &data, 200);
+ response.headers.SetHeader("X-Powered-By", "m_httpd_stats.so");
+ response.headers.SetHeader("Content-Type", "text/xml");
+ response.Send();
+ }
+ }