From dd2a56af6d764240dbba9fa4e6c97b104dfc45c0 Mon Sep 17 00:00:00 2001 From: tschettervictor <85497460+tschettervictor@users.noreply.github.com> Date: Wed, 16 Apr 2025 17:22:51 -0600 Subject: [PATCH] epair: Use full list --- usr/local/share/bastille/clone.sh | 4 ++-- usr/local/share/bastille/common.sh | 7 ++++--- usr/local/share/bastille/network.sh | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/usr/local/share/bastille/clone.sh b/usr/local/share/bastille/clone.sh index 80a53e69..d1a00a0f 100644 --- a/usr/local/share/bastille/clone.sh +++ b/usr/local/share/bastille/clone.sh @@ -203,7 +203,7 @@ update_jailconf_vnet() { if echo ${_if} | grep -Eoq 'epair[0-9]+'; then # Update bridged VNET config for _num in $(seq 0 "${_epair_num_range}"); do - if ! grep -Eoq "(bastille${_num}|epair${_num})" ${bastille_jailsdir}/*/jail.conf && ! ifconfig -g epair | grep -Eosq "(e${_num}a|epair${_num}a|bastille${_num})"; then + if ! echo "${_epair_list}" | grep -osq "${_num}" && ! grep -Eoq "(bastille${_num}|epair${_num})" ${bastille_jailsdir}/*/jail.conf && ! ifconfig -g epair | grep -Eosq "(e${_num}a|epair${_num}a|bastille${_num})"; then # Generate new epair name if [ "$(echo -n "e${_num}a_${NEWNAME}" | awk '{print length}')" -lt 16 ]; then local _new_host_epair="e${_num}a_${NEWNAME}" @@ -272,7 +272,7 @@ update_jailconf_vnet() { elif echo ${_if} | grep -Eoq 'bastille[0-9]+'; then # Update VNET config for _num in $(seq 0 "${_epair_num_range}"); do - if ! grep -Eoq "(bastille${_num}|epair${_num})" ${bastille_jailsdir}/*/jail.conf && ! ifconfig -g epair | grep -Eosq "(e${_num}a|epair${_num}a|bastille${_num})"; then + if ! echo "${_epair_list}" | grep -osq "${_num}" && ! grep -Eoq "(bastille${_num}|epair${_num})" ${bastille_jailsdir}/*/jail.conf && ! ifconfig -g epair | grep -Eosq "(e${_num}a|epair${_num}a|bastille${_num})"; then # Update jail.conf epair name local uniq_epair="bastille${_num}" local _jail_vnet="$(grep ${_if} "${_rc_conf}" | grep -Eo -m 1 "vnet[0-9]+")" diff --git a/usr/local/share/bastille/common.sh b/usr/local/share/bastille/common.sh index 303df0fa..681b0ac7 100644 --- a/usr/local/share/bastille/common.sh +++ b/usr/local/share/bastille/common.sh @@ -121,9 +121,10 @@ check_target_is_stopped() { get_epair_count() { for _config in /usr/local/etc/bastille/*.conf; do local bastille_jailsdir="$(sysrc -f "${_config}" -n bastille_jailsdir)" - local _epair_list="$(printf '%s\n' "$( (grep -Eos '(e[0-9]+b|bastille[0-9]+)' ${bastille_jailsdir}/*/jail.conf; ifconfig -g epair) | grep -Eo "[0-9]+")" "${_epair_list}" | sort -u)" + _epair_list="$(printf '%s\n' "$( (grep -Eos '(e[0-9]+b|bastille[0-9]+)' ${bastille_jailsdir}/*/jail.conf; ifconfig -g epair) | grep -Eo "[0-9]+")" "${_epair_list}" | sort -u)" done _epair_count=$(printf '%s' "${_epair_list}" | wc -l | awk '{print $1}') + export _epair_list export _epair_count } @@ -292,7 +293,7 @@ generate_vnet_jail_netblock() { if [ -n "${use_unique_bridge}" ]; then if [ "${_epair_count}" -gt 0 ]; then for _num in $(seq 0 "${_epair_num_range}"); do - if ! grep -Eosq "(bastille${_num}|epair${_num})" ${bastille_jailsdir}/*/jail.conf && ! ifconfig -g epair | grep -Eosq "(e${_num}a|epair${_num}a|bastille${_num})"; then + if ! echo "${_epair_list}" | grep -osq "${_num}" && ! grep -Eosq "(bastille${_num}|epair${_num})" ${bastille_jailsdir}/*/jail.conf && ! ifconfig -g epair | grep -Eosq "(e${_num}a|epair${_num}a|bastille${_num})"; then if [ "$(echo -n "e${_num}a_${jail_name}" | awk '{print length}')" -lt 16 ]; then local host_epair=e${_num}a_${jail_name} local jail_epair=e${_num}b_${jail_name} @@ -317,7 +318,7 @@ generate_vnet_jail_netblock() { else if [ "${_epair_count}" -gt 0 ]; then for _num in $(seq 0 "${_epair_num_range}"); do - if ! grep -Eosq "(bastille${_num}|epair${_num})" ${bastille_jailsdir}/*/jail.conf && ! ifconfig -g epair | grep -Eosq "(e${_num}a|epair${_num}a|bastille${_num})"; then + if ! echo "${_epair_list}" | grep -osq "${_num}" && ! grep -Eosq "(bastille${_num}|epair${_num})" ${bastille_jailsdir}/*/jail.conf && ! ifconfig -g epair | grep -Eosq "(e${_num}a|epair${_num}a|bastille${_num})"; then local uniq_epair="bastille${_num}" break fi diff --git a/usr/local/share/bastille/network.sh b/usr/local/share/bastille/network.sh index a1e6a915..e6a55a2d 100644 --- a/usr/local/share/bastille/network.sh +++ b/usr/local/share/bastille/network.sh @@ -239,7 +239,7 @@ add_interface() { if [ "${BRIDGE}" -eq 1 ]; then if [ "${_epair_count}" -gt 0 ]; then for _num in $(seq 0 "${_epair_num_range}"); do - if ! grep -Eosq "(bastille${_num}|epair${_num})" ${bastille_jailsdir}/*/jail.conf && ! ifconfig -g epair | grep -Eosq "(e${_num}a|epair${_num}a|bastille${_num})"; then + if ! echo "${_epair_list}" | grep -osq "${_num}" && ! grep -Eosq "(bastille${_num}|epair${_num})" ${bastille_jailsdir}/*/jail.conf && ! ifconfig -g epair | grep -Eosq "(e${_num}a|epair${_num}a|bastille${_num})"; then if [ "$(echo -n "e${_num}a_${jail_name}" | awk '{print length}')" -lt 16 ]; then local host_epair=e${_num}a_${_jailname} local jail_epair=e${_num}b_${_jailname}