Sfoglia il codice sorgente

fixing ssh invocation

tristangurtler 3 anni fa
parent
commit
3120e3b98f
1 ha cambiato i file con 25 aggiunte e 22 eliminazioni
  1. 25 22
      prsona/src/networkOrchestrator.cpp

+ 25 - 22
prsona/src/networkOrchestrator.cpp

@@ -28,15 +28,19 @@ void start_remote_actor(
     size_t lambda,
     bool maliciousServers)
 {
-    const char* sshFile = "ssh";
+    const char* sshFile = "/usr/bin/ssh";
     const char* serverFile = "bin/server";
     const char* clientFile = "bin/client";
     const char* calledFile = (target != "tick0" && !target.empty() ? sshFile : (server ? serverFile : clientFile));
+    const char* remoteScript = "\"~/prsona/prsona/scripts/startup.sh";
+    const char* serverStr = "server";
+    const char* clientStr = "client";
+    const char* calledScript = (server ? serverStr : clientStr);
 
-    char *argv[6];
+    char *argv[10];
 
-    char fileBuffer[11];
-    strncpy(fileBuffer, calledFile, 11);
+    char fileBuffer[13];
+    strncpy(fileBuffer, calledFile, 13);
     argv[0] = fileBuffer;
 
     char flagBuffer[3];
@@ -45,8 +49,11 @@ void start_remote_actor(
     char targetBuffer[64];
     strncpy(targetBuffer, target.c_str(), 64);
 
-    std::string fullArgString;
-    char fullArgBuffer[256];
+    char scriptBuffer[36];
+    strncpy(scriptBuffer, remoteScript, 36);
+
+    char whichScriptBuffer[7];
+    strncpy(whichScriptBuffer, calledScript, 7);
 
     char idBuffer[64];
     strncpy(idBuffer, id.c_str(), 64);
@@ -59,7 +66,7 @@ void start_remote_actor(
     char lambdaBuffer[3];
     strncpy(lambdaBuffer, lambdaStream.str().c_str(), 3);
 
-    char maliciousBuffer[2];
+    char maliciousBuffer[3];
     if (maliciousServers)
         strncpy(maliciousBuffer, "T", 2);
     else
@@ -67,23 +74,19 @@ void start_remote_actor(
 
     if (target != "tick0" && !target.empty())
     {
-        fullArgString = "~/prsona/prsona/scripts/startup.sh ";
-        fullArgString += (server ? "server" : "client");
-        fullArgString += " ";
-        fullArgString += id;
-        fullArgString += " ";
-        fullArgString += output;
-        fullArgString += " ";
-        fullArgString += lambdaStream.str();
-        fullArgString += " ";
-        fullArgString += (maliciousServers ? "T" : "F");
-
-        strncpy(fullArgBuffer, fullArgString.c_str(), 256);
-
         argv[1] = flagBuffer;
         argv[2] = targetBuffer;
-        argv[3] = fullArgBuffer;
-        argv[4] = NULL;
+        argv[3] = scriptBuffer;
+        argv[4] = whichScriptBuffer;
+        argv[5] = idBuffer;
+        argv[6] = outputBuffer;
+        argv[7] = lambdaBuffer;
+
+        maliciousBuffer[1] = '\"';
+        maliciousBuffer[2] = 0;
+        argv[8] = maliciousBuffer;
+
+        argv[9] = NULL;
     }
     else
     {