From: Eric Leblond Date: Tue, 2 Dec 2014 16:37:23 +0000 (+0100) Subject: suricatasc: implement autoreconnect X-Git-Tag: suricata-4.1.0-beta1~232 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3c68a220929bc708cd00ad9c8b9c1691ab540157;p=thirdparty%2Fsuricata.git suricatasc: implement autoreconnect 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. --- diff --git a/scripts/suricatasc/src/suricatasc.py b/scripts/suricatasc/src/suricatasc.py index a538947971..03483f37c2 100644 --- a/scripts/suricatasc/src/suricatasc.py +++ b/scripts/suricatasc/src/suricatasc.py @@ -375,7 +375,17 @@ class SuricataSC: 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:")