2022-09-14 09:21:52 -06:00
|
|
|
#!/bin/bash
|
2022-09-14 18:50:21 -06:00
|
|
|
# FILE: wgapi:back/admin_peer.cgi
|
|
|
|
# DESCRIPTION: Recieves incoming admin requests for peer operations
|
2022-09-14 09:21:52 -06:00
|
|
|
# ERRORS:
|
|
|
|
# 3: Bad usage
|
2022-09-14 14:44:00 -06:00
|
|
|
# 4: Missing config file
|
2022-09-14 09:21:52 -06:00
|
|
|
|
|
|
|
CONFIG_FILE='/etc/wgapi/config'
|
2022-09-14 14:44:00 -06:00
|
|
|
if ! [ ${#} -eq 0 ]; then
|
|
|
|
printf 'ERROR! Bad input: %s %s\n' "${0}" "${*}" >>"${LOGFILE}"
|
|
|
|
exit 3
|
2022-09-15 15:28:35 -06:00
|
|
|
fi & if ! [ -f "${CONFIG_FILE}" ]; then
|
2022-09-14 14:44:00 -06:00
|
|
|
printf 'ERROR! %s could not find %s!\n' "${0}" "${CONFIG_FILE}" >>"${LOGFILE}"
|
|
|
|
exit 4
|
|
|
|
fi; source "${CONFIG_FILE}"
|
2022-09-14 09:21:52 -06:00
|
|
|
|
|
|
|
case "${REQUEST_METHOD}" in
|
|
|
|
|
2022-09-14 22:28:02 -06:00
|
|
|
# List peers
|
2022-09-15 08:47:17 -06:00
|
|
|
# GET /peer to list all
|
|
|
|
# GET /peer?un=usernumber to list one user
|
2022-09-14 22:28:02 -06:00
|
|
|
'GET') "${LIB_DIR}/admin/peer/list" "${HTTP_X_REAL_IP}" "${QUERY_STRING}";;
|
2022-09-14 09:21:52 -06:00
|
|
|
|
2022-09-14 22:28:02 -06:00
|
|
|
# Add peer
|
2022-09-15 21:30:24 -06:00
|
|
|
# POST /peer?t=mytoken&name=mynewpeername
|
2022-09-14 18:50:21 -06:00
|
|
|
'POST') "${LIB_DIR}/admin/peer/add" "${HTTP_X_REAL_IP}" "${QUERY_STRING}";;
|
2022-09-14 09:21:52 -06:00
|
|
|
|
2022-09-14 22:28:02 -06:00
|
|
|
# Delete peer
|
2022-09-15 21:30:24 -06:00
|
|
|
# DELETE /peer?t=mytoken&pubkey=peerpubkey
|
2022-09-14 18:50:21 -06:00
|
|
|
'DELETE') "${LIB_DIR}/admin/peer/del" "${HTTP_X_REAL_IP}" "${QUERY_STRING}";;
|
2022-09-14 09:21:52 -06:00
|
|
|
|
|
|
|
# Needed for CORS preflight
|
|
|
|
'OPTIONS') "${LIB_DIR}/http_res" 200;;
|
|
|
|
|
|
|
|
# Bad request
|
|
|
|
*) printf 'Invalid HTTP verb' | "${LIB_DIR}/http_res" 405;;
|
|
|
|
|
2022-09-14 14:44:00 -06:00
|
|
|
esac
|