#!/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
}