--- smsdaemon/main.cpp 2008/12/07 21:42:15 150 +++ smsdaemon/main.cpp 2008/12/08 21:28:40 157 @@ -3,8 +3,12 @@ #include "daemon.h" #include "common.h" +#include "Logger.h" #include "ModemTransceiver.h" +#include "DebugTransceiver.h" +#include "SmsToolTransceiver.h" + #include "serialport/SerialPort.h" #include "SmsDaemon.h" #include "ConfigFile.h" @@ -39,7 +43,7 @@ } catch(std::exception &e) { - cmn->logMessage( string("PortOpen Exception: ") + e.what() ); + Logger::logMessage( string("PortOpen Exception: ") + e.what() ); sms_exit(1); } @@ -51,7 +55,7 @@ } catch (std::exception& e) { - cmn->logMessage( string("ModemTransceiver Exception: ") + e.what() ); + Logger::logMessage( string("ModemTransceiver Exception: ") + e.what() ); sms_exit(2); } } @@ -68,7 +72,7 @@ //Set default values - cmn->setLogfile( "/var/log/smsdaemon.log"); + Logger::setLogfile( "/var/log/smsdaemon.log"); cmn->pidfile = "/var/run/smsdaemon.pid"; cmn->spooldir = "/var/spool/smsdaemon"; @@ -80,16 +84,30 @@ bool res = config->Open( cmn->configFilePath ) ; if (!res) { - cmn->logMessage(string("Could not open config file:") + cmn->configFilePath); + Logger::logMessage(string("Could not open config file:") + cmn->configFilePath); return 1; } ///////////////////// + string transconf = config->GetValue("smsdaemon", "transceiver"); - openModemPort(); - closeModemPort(); + if (transconf == "internal") + { + openModemPort(); + closeModemPort(); + } + else if ( transconf == "debug" || transconf == "smstools") + { + //do nothing + } + else + { + Logger::logMessage( string("Invalid transceiver setting: ")+transconf); + exit(1); + } + if (Common::instance()->isDaemon) @@ -99,7 +117,19 @@ cmn->daemonized = true; } - openModemPort(); + + if (transconf == "internal") + { + openModemPort(); + } + else if (transconf =="smstools") + { + transceiver = new SmsToolTransceiver(); + } + else if (transconf == "debug") + { + transceiver = new DebugTransceiver(); + } ////////////////////////////////// @@ -111,7 +141,10 @@ if (cmn->isDaemon) daemonCleanup(); - closeModemPort(); + if (transconf == "builtin") + { + closeModemPort(); + } return 0; }