misc: Add the --listener-loopback-only command line option.
authorGabe Black <gabeblack@google.com>
Fri, 5 May 2017 23:53:42 +0000 (16:53 -0700)
committerGabe Black <gabeblack@google.com>
Tue, 9 May 2017 16:44:30 +0000 (16:44 +0000)
This option invokes the Listener::loopbackOnly() static function which
will make the port listeners bind to the loopback device exclusively and
ignore connections on other devices. That prevents external agents like
port scanners from disrupting simulations with spurious connections.

Change-Id: I46b22165046792a6f970826c109bdbce7db25c84
Reviewed-on: https://gem5-review.googlesource.com/3082
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

src/python/m5/main.py

index b987af4c8e4836f7fcf4996b711ce5812654b7af..49314303b486ead70185f9ec99f1f3e03af0796e 100644 (file)
@@ -85,6 +85,9 @@ def parse_options():
         choices=listener_modes, default="auto",
         help="Port (e.g., gdb) listener mode (auto: Enable if running " \
         "interactively) [Default: %default]")
+    option("--listener-loopback-only", action="store_true", default=False,
+        help="Port listeners will only accept connections over the " \
+        "loopback device")
     option('-i', "--interactive", action="store_true", default=False,
         help="Invoke the interactive interpreter after running the script")
     option("--pdb", action="store_true", default=False,
@@ -352,6 +355,9 @@ def main(*args):
     else:
         panic("Unhandled listener mode: %s" % options.listener_mode)
 
+    if options.listener_loopback_only:
+        m5.listenersLoopbackOnly()
+
     # set debugging options
     debug.setRemoteGDBPort(options.remote_gdb_port)
     for when in options.debug_break: