diff --git a/transmission/updatePort.sh b/transmission/updatePort.sh index d56e76fb0..1af6b15e3 100755 --- a/transmission/updatePort.sh +++ b/transmission/updatePort.sh @@ -31,10 +31,28 @@ if [ -z ${pia_client_id} ]; then fi # Get the port -pia_response=$(curl -d "user=$pia_username&pass=$pia_passwd&client_id=$pia_client_id&local_ip=$local_vpn_ip" $port_assignment_url) +pia_response=$(curl -s -f -d "user=$pia_username&pass=$pia_passwd&client_id=$pia_client_id&local_ip=$local_vpn_ip" $port_assignment_url) +# Check for curl error (curl will fail on HTTP errors with -f flag) +ret=$? +if [ $ret -ne 0 ]; then + echo "curl encountered an error looking up new port: $ret" +fi + +# Check for errors in PIA response +error=$(echo $pia_response | grep -oE "\"error\".*\"") +if [ ! -z "$error" ]; then + echo "PIA returned an error: $error" + exit +fi + +# Get new port, check if empty new_port=$(echo $pia_response | grep -oE "[0-9]+") -echo "Got new port $new_port from pia" +if [ -z "$new_port" ]; then + echo "Could not find new port from PIA" + exit +fi +echo "Got new port $new_port from PIA" # # Now, set port in Transmission @@ -61,4 +79,3 @@ if [ "$new_port" != "$transmission_peer_port" ] else echo "No action needed, port hasn't changed" fi -