Hopefully fixed config output to user

master
Keith Irwin 2022-09-11 18:16:33 -06:00
parent 1027aa07ea
commit 21c7f7e9a3
Signed by: ki9
GPG Key ID: DF773B3F4A88DA86
1 changed files with 8 additions and 5 deletions

View File

@ -103,16 +103,17 @@ fi
privkey="$(/usr/bin/wg genkey)"
pubkey="$(echo "${privkey}" | /usr/bin/wg pubkey)"
address="${ipv4}/${IPV4_NET##*/},${ipv6}/${IPV6_NET##*/}"
server_blocks=''
# Run this function in parallel in the while loop below
# https://stackoverflow.com/a/33058618
for_server_do() {
[[ ${server_hostname:0:1} = \# ]] && return # Ignore comments
server_hostname="${1}"; server_ipv4="${2}"; server_ipv6="${3}"; server_pubkey="${4}"
server_endpoint="${5}"; server_admin="${6}"; server_secret="${7}"
server_endpoint="${5}"; server_admin="${6}"; server_secret="${7}"; server_blocks="${8}"
server_psk="$(/usr/bin/wg genpsk)"
server_blocks="${server_blocks}\n[Peer] # ${server_hostname}.${TLD}\nPublicKey=${server_pubkey}\nPresharedKey=${server_psk}\nAllowedIPs=${server_ipv4}/32,${server_ipv6}/128\nEndpoint=${server_endpoint}\n"
# Print next line to stdout so it can be captured as the new global server_blocks
printf '%s\n[Peer] # %s.%s\nPublicKey=%s\nPresharedKey=%s\nAllowedIPs=%s\nEndpoint=%s\n' \
"${server_blocks}" "${server_hostname}" "${TLD}" "${server_pubkey}" "${server_psk}" "${server_ipv4}/32,${server_ipv6}/128" "${server_endpoint}"
if [ "${server_hostname}" == "${LOCAL_SERVER}" ]; then
# Add new user to local server
if "${LIB_DIR}/wg_peer_add" "${pubkey}" "${server_psk}" "${ipv4}/32,${ipv6}/128"; then
@ -144,13 +145,15 @@ fi &
if "${LIB_DIR}/ssl_peer_add" "${hostname:?}" "${username:?}" "IP:${ipv4},IP:${ipv6}"
then printf 'Successfully signed SSL certs for %s\n' "${domain}" >>"${LOGFILE}"
else printf 'ERROR! Failed to create certs for %s with IPS: %s %s!\n' "${domain}" "${ipv4}" "${ipv6}" >>"${LOGFILE}"
fi &
fi
server_blocks=''
while IFS=$'\t' read -r server_hostname server_ipv4 server_ipv6 server_pubkey server_endpoint server_admin server_secret
do for_server_do "${server_hostname}" "${server_ipv4}" "${server_ipv6}" "${server_pubkey}" "${server_endpoint}" "${server_admin}" "${server_secret}" &
do server_blocks="$(for_server_do "${server_hostname}" "${server_ipv4}" "${server_ipv6}" "${server_pubkey}" "${server_endpoint}" "${server_admin}" "${server_secret}" "${server_blocks}")" &
# Uncomment if SERVERS_FILE is very big
#[ $( jobs | wc -l ) -ge $( nproc ) ] && wait
done <"${SERVERS_FILE}"
wg_config="[Interface] # ${hostname}.${username}.${TLD}\nPrivateKey=${privkey}\nAddress=${address}\n${WG_DNS}\n${server_blocks}"
# Respond to user