X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/212f9ae5dc8899bab8b23ed13d81c28c510db3c3..49850f467dae860e12c7851a2f8a79132f87721e:/Server/src/server.cpp?ds=inline diff --git a/Server/src/server.cpp b/Server/src/server.cpp index e332866..32b23e5 100644 --- a/Server/src/server.cpp +++ b/Server/src/server.cpp @@ -73,10 +73,9 @@ Server::Server(const string& plant_filename, const Connection::Port& port) // FIXME - hacer que se puedan cargar mas plantas bien. Glib::Mutex::Lock lock(plants_mutex); plants["default"] = new Plant(plant_filename); - plants["default"]->signal_finished().connect( - SigC::bind( - SigC::slot_class(*this, &Server::on_plant_finished), - "default")); + plants["default"]->signal_finished().connect(SigC::bind( + SigC::slot_class(*this, &Server::on_plant_finished), + "default")); plants["default"]->run(); } @@ -88,10 +87,9 @@ Connection* Server::new_connection(const sockbuf::sockdesc& sd) { #endif // DEBUG ControlServer* connection = new ControlServer(sd); // TODO verificar si el new se hace bien? no creo. - connection->signal_command_received().connect( - SigC::bind( - SigC::slot_class(*this, &Server::on_control_command_received), - connection)); + connection->signal_command_received().connect(SigC::bind( + SigC::slot_class(*this, &Server::on_control_command_received), + connection)); // TODO: return connection; } @@ -121,22 +119,15 @@ void Server::on_control_command_received(const Command& command, if (command.get_command() == "status") { response = cmd_server_status(); } else if (command.get_command() == "stop") { - finish(); response = new HTTPResponse(HTTPMessage::OK, ""); - response->headers["Content-Type"] = "text/xml; charset=iso-8859-1"; - controlserver->send(*response); - delete response; - // Creo una conexión suicida para que el accept() del server retorne - // el control y el server pueda terminar realmente. - try { - sockinetbuf suicida(sockbuf::sock_stream); - suicida.connect(socket.localhost(), socket.localport()); - } catch (...) { - // FIXME - signal_error().emit(12345, "ahhhh! no puedo crear conexion suicida"); - } - return; + // XXX - Sin mandar la respuesta enseguida podría ser que el server + // cierre la conexión antes de mandar la respuesta. + //response->headers["Content-Type"] = "text/xml; charset=iso-8859-1"; + //controlserver->send(*response); + //delete response; + finish(); + //return; } else { response = new HTTPResponse(HTTPMessage::NOT_FOUND, "");