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