diff --git a/back/lib/peer_add b/back/lib/peer_add index 4ddcac3..1c84e6d 100755 --- a/back/lib/peer_add +++ b/back/lib/peer_add @@ -22,10 +22,10 @@ SERVERS_FILE='/etc/wgapi/servers' if ! [ ${#} -eq 2 ]; then printf 'ERROR! Bad input: %s %s\n' "${0}" "${*}" >>"${LOGFILE}" exit 3 -fi; if ! [ -x '/usr/bin/wg' ]; then +fi & if ! [ -x '/usr/bin/wg' ]; then printf 'ERROR! %s could not find /usr/bin/wg\n' "${0}" >>"${LOGFILE}" exit 5 -fi; if ! [ -f "${CONFIG_FILE}" ]; then +fi & if ! [ -f "${CONFIG_FILE}" ]; then printf 'ERROR! %s could not find %s!\n' "${0}" "${CONFIG_FILE}" >>"${LOGFILE}" exit 4 fi @@ -33,7 +33,7 @@ source "${CONFIG_FILE}" if ! [ -f "${SERVERS_FILE}" ]; then printf 'ERROR! %s could not find %s!\n' "${0}" "${SERVERS_FILE}" >>"${LOGFILE}" exit 12 -fi; if ! [ -f "${TOKENS_FILE}" ]; then +fi & if ! [ -f "${TOKENS_FILE}" ]; then printf 'ERROR! %s could not find %s!\n' "${0}" "${TOKENS_FILE}" >>"${LOGFILE}" exit 9 fi @@ -81,11 +81,14 @@ domain="${hostname:?}.${username:?}.${TLD:?}" printf 'New domain will be %s\n' "${domain}" >>"${LOGFILE}" # Create new IPs -peers="$("${LIB_DIR}/wg_peer_list" "${1}" tsv)" || exit 10 +if ! peers="$("${LIB_DIR}/wg_peer_list" "${ip}" tsv)"; then + printf 'ERROR! Failed to retrieve peers for %s!\n' "${ip}" >>"${LOGFILE}" + exit 10 +fi hostnames="$(<<<"${peers}" awk '{print $1}' | cut -d'.' -f1)" ipv4s="$(<<<"${peers}" awk '{print $2}')" ipv6s="$(<<<"${peers}" awk '{print $3}')" -u="$(<<<"${ipv4s}" head -n1 | cut -d'.' -f3)" +usernumber="$(<<<"${ipv4s}" head -n1 | cut -d'.' -f3)" # Increment hostnumber from 1 until an unused one is found used_hostnumbers="$(<<<"${ipv4s}" cut -d'.' -f4 | sort | uniq)" hostnumber=1; while <<<"${used_hostnumbers}" grep -q "${hostnumber}"