Browse code

Add a function to get an available random port

This commit adds a new function get_random_port to return a randomly
available port from the local port range.

Change-Id: Icaed180cc14602a74cdb3fd3456b690d8a4c729c

Matthew Treinish authored on 2017/05/24 04:18:31
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