]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Server/tests/server_test.cpp
Se corrige un bug.
[z.facultad/75.42/plaqui.git] / Server / tests / server_test.cpp
index 2e169354007bfc9e0dfd1f4322879b20b533b9d2..033bb2e892271b0f99e03cdde784f6bf9e8f9a1e 100644 (file)
 #include <exception>
 
 using namespace std;
 #include <exception>
 
 using namespace std;
-using namespace Plaqui;
+using namespace PlaQui::Server;
 
 int main(int argc, char* argv[]) {
 
        // Termina con mas informacion si hay una excepcion no manejada.
 
 int main(int argc, char* argv[]) {
 
        // Termina con mas informacion si hay una excepcion no manejada.
-       std::set_terminate (__gnu_cxx::__verbose_terminate_handler);
+       set_terminate (__gnu_cxx::__verbose_terminate_handler);
 
        // Necesita argumentos.
        if (argc != 2) {
 
        // Necesita argumentos.
        if (argc != 2) {
@@ -53,9 +53,38 @@ int main(int argc, char* argv[]) {
                str >> port;
        }
 
                str >> port;
        }
 
-       // Corre el server.
-       Server server(port);
-       server.run(false);
+       // Inicializa threads.
+       Glib::thread_init();
+
+       try {
+               // Corre el server.
+               Server server(port);
+               server.run(false);
+       } catch (const sockerr& e) {
+               cerr << "Socket Error: " << e.operation() << " | serrno = "
+                       << e.serrno() << " | errstr = " << e.errstr() << endl;
+               if (e.io()) {
+                       cerr << "Es: non-blocking and interrupt io recoverable error."
+                               << endl;
+               } else if (e.arg()) {
+                       cerr <<  "Es: incorrect argument supplied. recoverable error."
+                               << endl;
+               } else if (e.op()) {
+                       cerr << "Es: operational error. recovery difficult." << endl;
+               } else if (e.conn()) {
+                       cerr << "Es: connection error." << endl;
+               } else if (e.addr()) {
+                       cerr << "Es: address error." << endl;
+               } else if (e.benign()) {
+                       cerr << "Es: recoverable read/write error like EINTR etc." << endl;
+               }
+       } catch (const exception& e) {
+               cerr << "Error: " << e.what() << endl;
+       } catch (const char* e) {
+               cerr << "Error: " << e << endl;
+       } catch (...) {
+               cerr << "Error desconocido!" << endl;
+       }
 
        return 0;
 }
 
        return 0;
 }