X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/f27c218d18ebf7198e07249aca1eed625da914fd..29e4030c485d49ae79d491e7d0297899b9df6f73:/Server/src/server.cpp?ds=sidebyside
diff --git a/Server/src/server.cpp b/Server/src/server.cpp
index 73963ba..37f5c1c 100644
--- a/Server/src/server.cpp
+++ b/Server/src/server.cpp
@@ -100,44 +100,109 @@ void Server::on_control_command_received(const Command& command,
<< ", args = [" << String::join(command.get_args(), ", ") << "])"
<< endl;
#endif // DEBUG
- // TODO, seguir aca!
- stringstream response_xml;
- response_xml << "" << endl;
- response_xml << "
" << endl;
- response_xml << " PlaQui v0.4" << endl;
- response_xml << " " << endl;
- response_xml << " " << endl;
- response_xml << " PlaQui
" << endl;
- response_xml << " versión 0.4
" << endl;
- response_xml << " Comando
" << endl;
- response_xml << " " << endl;
- response_xml << " - Target: " << command.get_target() << endl;
- response_xml << "
- Command: " << command.get_command() << endl;
- response_xml << "
- Argumentos:" << endl;
- response_xml << "
" << endl;
- for (Command::Arguments::const_iterator i = command.get_args().begin();
- i != command.get_args().end(); i++) {
- response_xml << " - " << *i << "
" << endl;
+ HTTPResponse response(HTTPMessage::OK);
+ if (command.get_target() == "server") {
+#ifdef DEBUG
+ cerr << __FILE__ << ": server" << endl;
+#endif // DEBUG
+ if (command.get_command() == "status") {
+ // FIXME
+ stringstream response_xml;
+ response_xml << "" << endl;
+ response_xml << " " << endl;
+ response_xml << " PlaQui v0.6" << endl;
+ response_xml << " " << endl;
+ response_xml << " " << endl;
+ response_xml << " PlaQui
" << endl;
+ response_xml << " versión 0.6
" << endl;
+ response_xml << " Comando
" << endl;
+ response_xml << " " << endl;
+ response_xml << " - Target: " << command.get_target() << endl;
+ response_xml << "
- Command: " << command.get_command() << endl;
+ response_xml << "
- Argumentos:" << endl;
+ response_xml << "
" << endl;
+ for (Command::Arguments::const_iterator i = command.get_args().begin();
+ i != command.get_args().end(); i++) {
+ response_xml << " - " << *i << "
" << endl;
+ }
+ response_xml << "
" << endl;
+ response_xml << "
" << endl;
+ response_xml << " Desarrollado por
" << endl;
+ response_xml << " " << endl;
+ response_xml << " - Nicolás Dimov.
" << endl;
+ response_xml << " - Leandro Lucarella.
" << endl;
+ response_xml << " - Ricardo Markiewicz.
" << endl;
+ response_xml << "
" << endl;
+ response_xml << " " << endl;
+ response_xml << " Copyleft 2003 - bajo los " << endl;
+ response_xml << " términos de la licencia GPL" << endl;
+ response_xml << " " << endl;
+ response_xml << " " << endl;
+ response_xml << "" << endl;
+ response.status_code = HTTPMessage::OK;
+ response.set_body(response_xml.str());
+ } else if (command.get_command() == "stop") {
+ stop = true;
+ response.set_body("El server se apagará en instantes...");
+ } else {
+ response.status_code = HTTPMessage::NOT_FOUND;
+ response.set_body("Invalid command for 'server' taget!");
+ }
+ } else if (command.get_target() == "connection") {
+ if (command.get_command() == "list") {
+ // FIXME
+ TCPServer::ConnectionInfoList cil = get_connected();
+ stringstream response_xml;
+ response_xml << "" << endl;
+ response_xml << " " << endl;
+ response_xml << " PlaQui v0.6" << endl;
+ response_xml << " " << endl;
+ response_xml << " " << endl;
+ response_xml << " PlaQui
" << endl;
+ response_xml << " versión 0.6
" << endl;
+ response_xml << " Lista de conexiones:
" << endl;
+ response_xml << " " << endl;
+ for (TCPServer::ConnectionInfoList::const_iterator i = cil.begin();
+ i != cil.end(); i++) {
+ response_xml << " - " << i->host
+ << ":" << i->port << " [host << "/" << i->port << "\">deconectar]
"
+ << endl;
+ }
+ response_xml << "
" << endl;
+ response_xml << " " << endl;
+ response_xml << " Copyleft 2003 - bajo los " << endl;
+ response_xml << " términos de la licencia GPL" << endl;
+ response_xml << " " << endl;
+ response_xml << " " << endl;
+ response_xml << "" << endl;
+ response.status_code = HTTPMessage::OK;
+ response.set_body(response_xml.str());
+ } else if (command.get_command() == "stop") {
+ // TODO server->finish();
+ response.set_body("La conexión se cerrará en instantes...");
+ } else {
+ response.status_code = HTTPMessage::NOT_FOUND;
+ response.set_body("Invalid command for 'connection' taget!");
+ }
+ } else if (command.get_target() == "transmission") {
+ response.status_code = HTTPMessage::NOT_FOUND;
+ response.set_body("Invalid command for 'transmission' taget!");
+ } else if (command.get_target() == "plant") {
+ response.status_code = HTTPMessage::NOT_FOUND;
+ response.set_body("Invalid command for 'plant' taget!");
+ } else {
+ response.status_code = HTTPMessage::NOT_FOUND;
+ response.set_body("Invalid Target!");
}
- response_xml << "
" << endl;
- response_xml << "
" << endl;
- response_xml << " Desarrollado por
" << endl;
- response_xml << " " << endl;
- response_xml << " - Nicolás Dimov.
" << endl;
- response_xml << " - Leandro Lucarella.
" << endl;
- response_xml << " - Ricardo Markiewicz.
" << endl;
- response_xml << "
" << endl;
- response_xml << " " << endl;
- response_xml << " Copyleft 2003 - bajo los " << endl;
- response_xml << " términos de la licencia GPL" << endl;
- response_xml << " " << endl;
- response_xml << " " << endl;
- response_xml << "" << endl;
- HTTPResponse response(HTTPMessage::OK, response_xml.str());
+ // FIXME
response.headers["Content-Type"] = "text/html; charset=iso-8859-1";
- //response.headers["Connection"] = "close";
- server->send(response);
- }
+ response.headers["Connection"] = "close";
+ server->send(response);
+ // FIXME con timeout no debería ser necesario. Verificar cabecera Connection
+ // para saber si hay que finish()earlo o no.
+ // server->finish();
+}
} // namespace Server