Look for MultiHome option case-insensitive

This commit is contained in:
Ben Peddell 2017-09-17 17:42:50 +10:00
parent e6db41d747
commit c6fac2f520

View File

@ -335,16 +335,25 @@ checkConfig() {
# $2 is the default # $2 is the default
# #
getArkServerSetting() { getArkServerSetting() {
local varname="ark_$1" local lcname="$(tr 'A-Z' 'a-z' <<<"${1}")"
if [ -n "${!varname}" ]; then local varname
echo "${!varname}" for varname in "${!ark_@}"; do
else if [ "$(tr 'A-Z' 'a-z' <<<"$varname")" == "ark_${lcname}" ]; then
local val="$(tr -d '\0\376\377' <"${arkserverroot}/${arkserverdir}/Saved/Config/LinuxServer/GameUserSettings.ini" | sed -n '/^\[ServerSettings\]/,/^\[.*\]/{s/^'"$1"'[[:space:]]*=[[:space:]]*//p;}' )" echo "${!varname}"
if [ -n "$val" ]; then return
echo "$val"
else
echo "$2"
fi fi
done
for varname in "${!arkopt_@}"; do
if [ "$(tr 'A-Z' 'a-z' <<<"$varname")" == "arkopt_${lcname}" ]; then
echo "${!varname}"
return
fi
done
local val="$(tr -d '\0\376\377' <"${arkserverroot}/${arkserverdir}/Saved/Config/LinuxServer/GameUserSettings.ini" | sed -n '/^\[ServerSettings\]/,/^\[.*\]/{s/^'"$1"'[[:space:]]*=[[:space:]]*//ip;}' )"
if [ -n "$val" ]; then
echo "$val"
else
echo "$2"
fi fi
} }
@ -362,6 +371,13 @@ getRconPort() {
getArkServerSetting "RCONPort" "32330" getArkServerSetting "RCONPort" "32330"
} }
#
# Gets server bind IP
#
getMultiHome() {
getArkServerSetting "MultiHome" "${1:-127.0.0.1}"
}
# #
# Get server Game Port # Get server Game Port
# #
@ -429,7 +445,7 @@ rconcmd() {
} else { } else {
print "\"", $rcvbody, "\"\n"; print "\"", $rcvbody, "\"\n";
} }
' "$(getRconPort)" "${ark_MultiHome:-127.0.0.1}" "$adminpass" "$1" ' "$(getRconPort)" "$(getMultiHome)" "$adminpass" "$1"
} }
# #
@ -761,9 +777,10 @@ function isTheServerRunning(){
# #
# #
function isTheServerUp(){ function isTheServerUp(){
local ip="$(getMultiHome "")"
result=1 result=1
if [ ! -x "$lsof" ]; then if [ ! -x "$lsof" ]; then
"$lsof" -i "${ark_MultiHome:+udp@}${ark_MultiHome}:$(getGamePort)" > /dev/null "$lsof" -i "${ip:+udp@}${ip}:$(getGamePort)" > /dev/null
result=$? result=$?
fi fi
if [ $result -ne 0 ]; then if [ $result -ne 0 ]; then
@ -787,7 +804,7 @@ function isTheServerUp(){
} else { } else {
exit(1); exit(1);
} }
' "$(getQueryPort)" "${ark_MultiHome:-127.0.0.1}" ' "$(getQueryPort)" "$(getMultiHome)"
result=$? result=$?
fi fi
# In this case, the result is: # In this case, the result is:
@ -804,8 +821,8 @@ function isTheServerUp(){
# Check if the server is visible in the steam server list # Check if the server is visible in the steam server list
# #
function isTheServerOnline(){ function isTheServerOnline(){
if [ -n "$ark_MultiHome" ]; then if [ -n "$(getMultiHome "")" ]; then
publicip="$(curl --interface "${ark_MultiHome}" -s http://api.ipify.org/)" publicip="$(curl --interface "$(getMultiHome)" -s http://api.ipify.org/)"
else else
publicip="$(curl -s http://api.ipify.org/)" publicip="$(curl -s http://api.ipify.org/)"
fi fi
@ -856,7 +873,7 @@ function numPlayersConnected(){
} }
} }
print "$active\n"; print "$active\n";
' "$(getQueryPort)" "${ark_MultiHome:-127.0.0.1}" ' "$(getQueryPort)" "$(getMultiHome)"
else else
perl -MSocket -e ' perl -MSocket -e '
my $port = int($ARGV[0]); my $port = int($ARGV[0]);
@ -869,7 +886,7 @@ function numPlayersConnected(){
my ($servername, $mapname, $game, $fullname, $rest) = split(/\x00/, substr($data, 6), 5); my ($servername, $mapname, $game, $fullname, $rest) = split(/\x00/, substr($data, 6), 5);
my $players = ord(substr($rest, 2, 1)); my $players = ord(substr($rest, 2, 1));
print "$players\n"; print "$players\n";
' "$(getQueryPort)" "${ark_MultiHome:-127.0.0.1}" ' "$(getQueryPort)" "$(getMultiHome)"
fi fi
} }
@ -2851,7 +2868,7 @@ printStatus(){
} }
} }
print "Active Players: $active\n"; print "Active Players: $active\n";
' "$(getQueryPort)" "${ark_MultiHome:-127.0.0.1}" ' "$(getQueryPort)" "$(getMultiHome)"
if isTheServerOnline; then if isTheServerOnline; then
echo -e "$NORMAL" "Server online: " "$GREEN" "Yes" "$NORMAL" echo -e "$NORMAL" "Server online: " "$GREEN" "Yes" "$NORMAL"