Implement a basic autoreconnect support. It tries to reconnect once
when connection has been lost. If it fails, it discards the command
and try again to connect at next command.
except SuricataCommandException as err:
print(err)
continue
- cmdret = self.send_command(cmd, arguments)
+ try:
+ cmdret = self.send_command(cmd, arguments)
+ except IOError as err:
+ # try to reconnect and resend command
+ print("Connection lost, trying to reconnect")
+ try:
+ self.connect()
+ except SuricataNetException as err:
+ print("Can't reconnect to suricata socket, discarding command")
+ continue
+ cmdret = self.send_command(cmd, arguments)
#decode json message
if cmdret["return"] == "NOK":
print("Error:")