Issue: 4947
Improve handling of values returned by recv. Sometimes, recv returns an
empty string if suricata terminates asynchronously.
(cherry picked from commit
fc6fdef07006e5382839ef88873e90754b30e6e0)
data = ""
while True:
if sys.version < '3':
- data += self.socket.recv(INC_SIZE)
+ received = self.socket.recv(INC_SIZE)
else:
- data += self.socket.recv(INC_SIZE).decode('iso-8859-1')
+ received = self.socket.recv(INC_SIZE).decode('iso-8859-1')
+
+ if not received:
+ break
+
+ data += received
if data.endswith('\n'):
cmdret = json.loads(data)
break