/[projects]/smsdaemon/plugins/ShellExecPlugin.cpp
ViewVC logotype

Diff of /smsdaemon/plugins/ShellExecPlugin.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 44 by torben, Wed Jun 11 08:25:34 2008 UTC revision 90 by torben, Mon Jun 16 10:21:02 2008 UTC
# Line 1  Line 1 
1  #include "ShellExecPlugin.h"  #include "ShellExecPlugin.h"
2  #include "GsmModem.h"  #include "IGsmModem.h"
3    #include "Sms.h"
4    
5  #include "util.h"  #include "util.h"
6    
7  ShellExecPlugin::ShellExecPlugin(std::string pluginCommand, std::string exeCommand)  ShellExecPlugin::ShellExecPlugin(std::string pluginCommand, std::string exeCommand, bool allowParameters)
8    : Plugin(pluginCommand, std::string("ShellExec: ")+exeCommand ),    : Plugin(pluginCommand, std::string("ShellExec: ")+exeCommand ),
9    _exeCommand(exeCommand)    _exeCommand(exeCommand),
10      _allowParameters(allowParameters)
11  {  {
12  }  }
13    
14  void ShellExecPlugin::Execute(IGsmModem& modem, SMS& sms)  void ShellExecPlugin::Execute(IGsmModem& modem, SMS& sms)
15  {  {
16          std::string parameters = GetSmsData(sms);          std::string command = _exeCommand;
         parameters = Util::str_replace(parameters,";");  
17    
18          std::string command = _exeCommand + " " + parameters;          if (_allowParameters)
19          int retval = ::system( command.c_str()  );          {
20                    std::string parameters = GetSmsData(sms);
21    
22                    parameters = Util::str_replace(parameters, "||");
23                    parameters = Util::str_replace(parameters, "&&");
24                    parameters = Util::str_replace(parameters, ";");
25                    parameters = Util::str_replace(parameters, "'");
26                    parameters = Util::str_replace(parameters, "\"");
27    
28                    command += " ";
29                    command += parameters;
30            }
31            int retval = Util::my_system( command.c_str()  );
32    
33          std::string message;          std::string message;
34          if (retval == -1)          if (retval == -1)
# Line 23  void ShellExecPlugin::Execute(IGsmModem& Line 36  void ShellExecPlugin::Execute(IGsmModem&
36          else          else
37                  message = "OK";                  message = "OK";
38                    
39          modem.SendSms(sms.sender, message );          modem.SendSms(sms.sender, message, false );
40  }  }

Legend:
Removed from v.44  
changed lines
  Added in v.90

  ViewVC Help
Powered by ViewVC 1.1.20