INNER CODE UNIT · Shell
offset
bivlked/amneziawg-installer · awg_common.sh:3162
offset=$(( ip_int - net_int ))
(( offset >= 1 && offset < bcast_int - net_int )) || { log_error "get_next_client_ipv6: IPv4 '$ipv4' вне подсети '$tunnel'"; return 1; }
if [[ "$tprefix" == "24" ]]; then
suffix="$offset"
else
suffix=$(printf '%x' "$offset")
fi
local subnet="${IPV6_SUBNET:-fddd:2c4:2c4:2c4::/64}"
local prefix="${subnet%%::*}"
[[ "$prefix" == *:* ]] || { log_error "get_next_client_ipv6: IPV6_SUBNET не содержит :: (значение: $subnet)"; return 1; }
echo "${prefix}::${suffix}"
return 0
}
# Добавление [Peer] в серверный конфиг (атомарно через tmpfile + mv).
#
# КОНТРАКТ БЛОКИРОВКИ: вызывающий код ОБЯЗАН держать exclusive flock на
# ${AWG_DIR}/.awg_config.lock когда вызывает эту функцию. Эту блокировку