Browse code

Merge "Add a function to get an available random port"

Jenkins authored on 2017/06/20 18:11:25
Showing 1 changed files
... ...
@@ -732,6 +732,24 @@ function set_systemd_override {
732 732
     sudo systemctl daemon-reload
733 733
 }
734 734
 
735
+# Get a random port from the local port range
736
+#
737
+# This function returns an available port in the local port range. The search
738
+# order is not truly random, but should be considered a random value by the
739
+# user because it depends on the state of your local system.
740
+function get_random_port {
741
+    read lower_port upper_port < /proc/sys/net/ipv4/ip_local_port_range
742
+    while true; do
743
+        for (( port = upper_port ; port >= lower_port ; port-- )); do
744
+            sudo lsof -i ":$port" &> /dev/null
745
+            if [[ $? > 0 ]] ; then
746
+                break 2
747
+            fi
748
+        done
749
+    done
750
+    echo $port
751
+}
752
+
735 753
 
736 754
 # Restore xtrace
737 755
 $_XTRACE_FUNCTIONS