Blob Blame History Raw
From 3db75315b7e436e57943efb132f7b331a7a7744c Mon Sep 17 00:00:00 2001
From: Matt Coleman <matt@datto.com>
Date: Thu, 7 Nov 2019 18:21:32 -0500
Subject: [PATCH] Use StringIO as a buffer instead of a file

---
 daemon/targetclid | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/daemon/targetclid b/daemon/targetclid
index fb472dc..dfc22ce 100755
--- a/daemon/targetclid
+++ b/daemon/targetclid
@@ -32,6 +32,7 @@ import struct
 import fcntl
 import signal
 import errno
+import io
 
 
 err = sys.stderr
@@ -153,7 +154,7 @@ class TargetCLI:
                 connection.close()
                 still_listen = False
             else:
-                self.con._stdout = self.con._stderr = f = open("/tmp/data.txt", "w")
+                self.con._stdout = self.con._stderr = f = io.StringIO()
                 try:
                     # extract multiple commands delimited with '%'
                     list_data = data.decode().split('%')
@@ -165,14 +166,14 @@ class TargetCLI:
                 # Restore
                 self.con._stdout = self.con_stdout_
                 self.con._stderr = self.con_stderr_
-                f.close()
 
-                with open('/tmp/data.txt', 'r') as f:
-                    output = f.read()
-                    var = struct.pack('i', len(output))
-                    connection.sendall(var) # length of string
-                    if len(output):
-                        connection.sendall(output.encode()) # actual string
+                output = f.getvalue()
+                var = struct.pack('i', len(output))
+                connection.sendall(var) # length of string
+                if len(output):
+                    connection.sendall(output.encode()) # actual string
+
+                f.close()
 
 
 def usage():
-- 
2.21.0