Added 'Dump' method to the database handler and to the telnet server (Info -> Dump...
[profile/ivi/genivi/genivi-audio-manager.git] / AudioManagerDaemon / src / CAmTelnetServer.cpp
index fcd7cc7..644b0a6 100755 (executable)
@@ -34,7 +34,9 @@
 #include <iostream>
 #include <iterator>
 #include <unistd.h>
-#include "CAmDatabaseHandler.h"
+#include <stdexcept>
+#include <cstdlib>
+#include "CAmDatabaseHandlerInterface.h"
 #include "CAmRoutingSender.h"
 #include "CAmTelnetMenuHelper.h"
 #include "shared/CAmDltWrapper.h"
@@ -46,7 +48,7 @@ CAmTelnetServer* CAmTelnetServer::mpInstance = NULL;
 
 #define PRINT_BOOL(var) var ? output+="true\t\t" : output+="false\t\t";
 
-CAmTelnetServer::CAmTelnetServer(CAmSocketHandler *iSocketHandler, CAmCommandSender *iCommandSender, CAmCommandReceiver *iCommandReceiver, CAmRoutingSender *iRoutingSender, CAmRoutingReceiver *iRoutingReceiver, CAmControlSender *iControlSender, CAmControlReceiver *iControlReceiver, CAmDatabaseHandler *iDatabasehandler, CAmRouter *iRouter, unsigned int servPort, unsigned int maxConnections) :
+CAmTelnetServer::CAmTelnetServer(CAmSocketHandler *iSocketHandler, CAmCommandSender *iCommandSender, CAmCommandReceiver *iCommandReceiver, CAmRoutingSender *iRoutingSender, CAmRoutingReceiver *iRoutingReceiver, CAmControlSender *iControlSender, CAmControlReceiver *iControlReceiver, CAmDatabaseHandlerInterface *iDatabasehandler, CAmRouter *iRouter, unsigned int servPort, unsigned int maxConnections) :
         telnetConnectFiredCB(this, &CAmTelnetServer::connectSocket), //
         telnetReceiveFiredCB(this, &CAmTelnetServer::receiveData), //
         telnetDispatchCB(this, &CAmTelnetServer::dispatchData), //
@@ -94,11 +96,16 @@ CAmTelnetServer::CAmTelnetServer(CAmSocketHandler *iSocketHandler, CAmCommandSen
     servAddr.sin_family = AF_INET;
     servAddr.sin_addr.s_addr = INADDR_ANY;
     servAddr.sin_port = htons(servPort);
-    assert(bind(mConnectFD, (struct sockaddr *) &servAddr, sizeof(servAddr))==0);
+    if(bind(mConnectFD, (struct sockaddr *) &servAddr, sizeof(servAddr))!=0)
+    {
+        logError("CAmTelnetServer::CAmTelnetServer bind failed, error",errno);
+        throw std::runtime_error("CAmTelnetServer::CAmTelnetServer bind failed");
+    }
 
     if (listen(mConnectFD, mMaxConnections) < 0)
     {
         logError("TelnetServer::TelnetServerk cannot listen ", errno);
+        throw std::runtime_error("CAmTelnetServer::CAmTelnetServer bind failed");
     }
     else
         logInfo("TelnetServer::TelnetServer started listening on port", mServerPort);
@@ -136,7 +143,7 @@ void CAmTelnetServer::connectSocket(const pollfd pfd, const sh_pollHandle_t hand
     short event = 0;
     event |= POLLIN;
 
-    //aded the filedescriptor to the sockethandler and register the callbacks for receiving the data
+    //add the filedescriptor to the sockethandler and register the callbacks for receiving the data
     mpSocketHandler->addFDPoll(connection.filedescriptor, event, NULL, &telnetReceiveFiredCB, &telnetCheckCB, &telnetDispatchCB, NULL, connection.handle);
     mListConnections.push_back(connection);
 }