1cc30c93fSWillem de Bruijn#!/bin/sh 2cc30c93fSWillem de Bruijn# SPDX-License-Identifier: GPL-2.0 3cc30c93fSWillem de Bruijn# 4cc30c93fSWillem de Bruijn# Execute a subprocess in a network namespace 5cc30c93fSWillem de Bruijn 6cc30c93fSWillem de Bruijnset -e 7cc30c93fSWillem de Bruijn 8cc30c93fSWillem de Bruijnreadonly NETNS="ns-$(mktemp -u XXXXXX)" 9cc30c93fSWillem de Bruijn 10cc30c93fSWillem de Bruijnsetup() { 11cc30c93fSWillem de Bruijn ip netns add "${NETNS}" 12cc30c93fSWillem de Bruijn ip -netns "${NETNS}" link set lo up 13cc30c93fSWillem de Bruijn} 14cc30c93fSWillem de Bruijn 15cc30c93fSWillem de Bruijncleanup() { 16cc30c93fSWillem de Bruijn ip netns del "${NETNS}" 17cc30c93fSWillem de Bruijn} 18cc30c93fSWillem de Bruijn 19cc30c93fSWillem de Bruijntrap cleanup EXIT 20cc30c93fSWillem de Bruijnsetup 21cc30c93fSWillem de Bruijn 22*4d1e46a5SPrashant Bholeip netns exec "${NETNS}" "$@" 23cc30c93fSWillem de Bruijnexit "$?" 24