mirror of
https://github.com/DictXiong/dotfiles.git
synced 2024-11-24 09:57:02 +08:00
validate port and username
This commit is contained in:
parent
76a941ac75
commit
e937935a28
15
scripts/riot
15
scripts/riot
|
@ -5,6 +5,19 @@ source "$THIS_DIR/../tools/common.sh"
|
||||||
RIOT_TRUST_CLIENT=${RIOT_TRUST_CLIENT:-${DFS_TRUST:-0}}
|
RIOT_TRUST_CLIENT=${RIOT_TRUST_CLIENT:-${DFS_TRUST:-0}}
|
||||||
RIOT_TRUST_SERVER=${RIOT_TRUST_SERVER:-0}
|
RIOT_TRUST_SERVER=${RIOT_TRUST_SERVER:-0}
|
||||||
|
|
||||||
|
# check if port number valid
|
||||||
|
check_port() {
|
||||||
|
( echo $1 | grep -qxE "[1-9][0-9]{0,4}" ) || return 1
|
||||||
|
test $1 -lt 65536 -a $1 -gt 0 || return 1
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# check if username valid
|
||||||
|
check_username() {
|
||||||
|
( echo $1 | grep -qxE "^[a-z][-a-z0-9_]*\$" ) || return 1
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
# get single server setting
|
# get single server setting
|
||||||
# may be called more than once
|
# may be called more than once
|
||||||
get_server_meta() {
|
get_server_meta() {
|
||||||
|
@ -20,11 +33,13 @@ get_server_meta() {
|
||||||
if [[ "$remote" == *@* ]]; then
|
if [[ "$remote" == *@* ]]; then
|
||||||
RET_USERNAME=${remote%%@*}
|
RET_USERNAME=${remote%%@*}
|
||||||
remote=${remote#*@}
|
remote=${remote#*@}
|
||||||
|
check_username $RET_USERNAME || fmt_fatal invalid username \"$RET_USERNAME\"
|
||||||
fi
|
fi
|
||||||
# if in the form ...:22
|
# if in the form ...:22
|
||||||
if [[ "$remote" == "["*"]":* || ( "$remote" != "["*"]" && "$remote" == *:* ) ]]; then
|
if [[ "$remote" == "["*"]":* || ( "$remote" != "["*"]" && "$remote" == *:* ) ]]; then
|
||||||
RET_PORT=${remote##*:}
|
RET_PORT=${remote##*:}
|
||||||
remote=${remote%:*}
|
remote=${remote%:*}
|
||||||
|
check_port $RET_PORT || fmt_fatal invalid port number \"$RET_PORT\"
|
||||||
fi
|
fi
|
||||||
# presets -- match domain
|
# presets -- match domain
|
||||||
local domain=${remote##*.}
|
local domain=${remote##*.}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user