26 lines
514 B
Bash
26 lines
514 B
Bash
#!/bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Helper functions
|
|
|
|
wait_local_port_listen()
|
|
{
|
|
local listener_ns="${1}"
|
|
local port="${2}"
|
|
local protocol="${3}"
|
|
local pattern
|
|
local i
|
|
|
|
pattern=":$(printf "%04X" "${port}") "
|
|
|
|
# for tcp protocol additionally check the socket state
|
|
[ ${protocol} = "tcp" ] && pattern="${pattern}0A"
|
|
for i in $(seq 10); do
|
|
if ip netns exec "${listener_ns}" awk '{print $2" "$4}' \
|
|
/proc/net/"${protocol}"* | grep -q "${pattern}"; then
|
|
break
|
|
fi
|
|
sleep 0.1
|
|
done
|
|
}
|