]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
suricatasc: handle exceptions interactive mode
authorShivani Bhardwaj <shivani@oisf.net>
Thu, 22 Jun 2023 08:17:37 +0000 (13:47 +0530)
committerVictor Julien <vjulien@oisf.net>
Mon, 3 Jul 2023 15:54:41 +0000 (17:54 +0200)
(cherry picked from commit b42a584f4dccd5c96a829d07b8a35185542f384c)

python/suricata/sc/suricatasc.py

index fa0638961d4835c916159e7d07e407b07cb8eac0..5a3d293ecb424e6d375550d2187f3161d0eda766 100644 (file)
@@ -1,5 +1,5 @@
 #!/usr/bin/python
-# Copyright(C) 2012-2020 Open Information Security Foundation
+# Copyright(C) 2012-2023 Open Information Security Foundation
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -234,7 +234,7 @@ class SuricataSC:
             if cmd in self.fn_commands:
                 cmd, arguments = getattr(self, "execute")(command=command)
         else:
-            raise SuricataCommandException("Unknown command {}".format(command))
+            raise SuricataCommandException("Unknown command: {}".format(command))
         return cmd, arguments
 
     def interactive(self):
@@ -263,10 +263,13 @@ class SuricataSC:
                     try:
                         self.close()
                         self.connect()
-                    except SuricataNetException as err:
-                        print("Can't reconnect to suricata socket, discarding command")
+                    except (SuricataNetException, SuricataReturnException) as err:
+                        print(err.value)
                         continue
                     cmdret = self.send_command(cmd, arguments)
+                except (SuricataCommandException, SuricataReturnException) as err:
+                    print("An exception occured: " + str(err.value))
+                    continue
                 #decode json message
                 if cmdret["return"] == "NOK":
                     print("Error:")