--- smsdaemon/SmsToolTransceiver.cpp 2008/12/09 19:42:45 167 +++ smsdaemon/SmsToolTransceiver.cpp 2008/12/09 21:44:15 168 @@ -3,6 +3,7 @@ #include "Logger.h" #include "Util.h" #include "Common.h" +#include "ConfigFile.h" #include #include @@ -19,16 +20,46 @@ using namespace std; +string appendSlash(string& str) +{ + if (str.at(str.length()-1) != '/'); + str += "/"; + return str; +} + +SmsToolTransceiver::SmsToolTransceiver() +{ + Common* cmn = Common::instance(); + + try + { + inboxdir = cmn->GetConfigfile()->GetValue("smstools","inboxdir").StringValue(); + } catch (...) { + Logger::logMessage("Config error> smstools::inboxdir not specified"); + exit(1); + } + try + { + outgoingdir = cmn->GetConfigfile()->GetValue("smstools","outgoingdir").StringValue(); + } catch (...) { + Logger::logMessage("Config error> smstools::outgoingdir not specified"); + exit(1); + } + + inboxdir = appendSlash(inboxdir); + outgoingdir = appendSlash(outgoingdir); + +} + + void SmsToolTransceiver::SendSms(std::string to, std::string message, bool allowMultipart) { std::string filename = CreateFilename(); Logger::logMessage( std::string("Sending sms to: ") + to); - string tempfile = "/var/spool/sms/"; - tempfile += filename; + string tempfile = outgoingdir + filename + ".LOCK"; - string destfile = "/var/spool/sms/outgoing/"; - destfile += filename; + string destfile = outgoingdir + filename; ofstream out( tempfile.c_str() ); if (!out ) @@ -59,9 +90,8 @@ std::vector SmsToolTransceiver::ReadSms(bool readAll) { - const std::string inbox = "/var/spool/sms/inbox/"; std::vector vec; - DIR* dir = opendir( inbox.c_str() ); + DIR* dir = opendir( inboxdir.c_str() ); if (dir != 0) { @@ -74,7 +104,7 @@ try { - SMS sms = ParseFile( inbox + entry->d_name); + SMS sms = ParseFile( inboxdir + entry->d_name); vec.push_back(sms); } catch (std::exception& e)