+ TCPServer::ConnectionInfoList cil = get_connected();
+ stringstream response_xml;
+ response_xml << "<html>" << endl;
+ response_xml << " <head>" << endl;
+ response_xml << " <title>PlaQui v0.7</title>" << endl;
+ response_xml << " </head>" << endl;
+ response_xml << " <body>" << endl;
+ response_xml << " <h1>PlaQui</h1>" << endl;
+ response_xml << " <p>versión 0.7</p>" << endl;
+ response_xml << " <h2>Lista de conexiones:</h2>" << endl;
+ response_xml << " <ul>" << endl;
+ for (TCPServer::ConnectionInfoList::const_iterator i = cil.begin();
+ i != cil.end(); i++) {
+ response_xml << " <li>" << i->host
+ << ":" << i->port << " [<a href=\"/connection/stop/"
+ << i->host << "/" << i->port << "\">deconectar</a>]</li>"
+ << endl;
+ }
+ response_xml << " </ul>" << endl;
+ response_xml << " <address>" << endl;
+ response_xml << " Copyleft 2003 - bajo los " << endl;
+ response_xml << " términos de la licencia GPL" << endl;
+ response_xml << " </address>" << endl;
+ response_xml << " </body>" << endl;
+ response_xml << "</html>" << endl;
+ return new HTTPResponse(HTTPMessage::OK, response_xml.str());
+}
+
+HTTPResponse* Server::cmd_connection_stop(const Command& command) {
+ const Command::Arguments& args = command.get_args();
+ Connection::Port port;
+ if (args.size() < 2) {
+ return new HTTPResponse(HTTPMessage::CONFLICT,
+ "Faltan argumentos.");
+ } else if (disconnect(args[0], String(args[1]).to(port))) {
+ return new HTTPResponse(HTTPMessage::OK,
+ string("La conexión a ") + args[0] + ":" + args[1]
+ + " se cerrará en instantes...");
+ } else {
+ return new HTTPResponse(HTTPMessage::NOT_FOUND,
+ string("No existe una conexión a ") + args[0]
+ + ":" + args[1]);
+ }