Modify error output from searchapi.cgi.
This commit is contained in:
parent
41378eaf26
commit
6379a864b7
1 changed files with 10 additions and 6 deletions
|
|
@ -13,9 +13,13 @@ shopt -s extglob
|
||||||
|
|
||||||
# Output an error in processing.
|
# Output an error in processing.
|
||||||
die() {
|
die() {
|
||||||
# $1 = The error message to output.
|
# $1 = The error code to output.
|
||||||
printf "%s: %s\\n" "Status" "1"
|
# 0 = Success.
|
||||||
printf "%s: %s\\n" "Error" "$1"
|
# 1 = Temporary error (eg, max concurrent).
|
||||||
|
# 2 = Perminant error.
|
||||||
|
# $2 = The error message to output (if any).
|
||||||
|
printf "%s: %s\\n" "Status" "${1:-2}"
|
||||||
|
[[ -n "$2" ]] && printf "%s: %s\\n" "Error" "$2"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -27,11 +31,11 @@ printf "%s: %s\\n\\n" "Expires" "1"
|
||||||
|
|
||||||
# Limit the number of concurrent searches to avoid DoS.
|
# Limit the number of concurrent searches to avoid DoS.
|
||||||
if (( $(lsof -t "$LOCATE_DB" | wc -l) > (MAX_CONCURRENT - 1) )); then
|
if (( $(lsof -t "$LOCATE_DB" | wc -l) > (MAX_CONCURRENT - 1) )); then
|
||||||
die "Too many concurrent searches"
|
die "1" "Too many concurrent searches"
|
||||||
else
|
else
|
||||||
# Lock the DB for the lsof count above.
|
# Lock the DB for the lsof count above.
|
||||||
# shellcheck disable=SC2015
|
# shellcheck disable=SC2015
|
||||||
exec 9<"$LOCATE_DB" && flock -s -E 10 -w 2 9 || die "Too many concurrent searches"
|
exec 9<"$LOCATE_DB" && flock -s -E 10 -w 2 9 || die "1" "Too many concurrent searches"
|
||||||
|
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
while read -r -d '&' QUERY; do
|
while read -r -d '&' QUERY; do
|
||||||
|
|
@ -43,7 +47,7 @@ else
|
||||||
VALUE="${QUERY#*=}"
|
VALUE="${QUERY#*=}"
|
||||||
|
|
||||||
# Check the key is valid as a variable name.
|
# Check the key is valid as a variable name.
|
||||||
[[ ! "$KEY" =~ ^[[:digit:]_]*[[:alnum:]_]*$ ]] && die "Invalid query - don't try to be clever :)"
|
[[ ! "$KEY" =~ ^[[:digit:]_]*[[:alnum:]_]*$ ]] && die "2" "Invalid query - don't try to be clever :)"
|
||||||
|
|
||||||
# Remove spaces from beginning and end of value.
|
# Remove spaces from beginning and end of value.
|
||||||
: "${VALUE/#+(+)}"
|
: "${VALUE/#+(+)}"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue