Simpler tor bridge removal by nickname

This commit is contained in:
Bob Mottram 2016-12-22 13:13:48 +00:00
parent b322ea8436
commit 065394c83c
2 changed files with 34 additions and 17 deletions

View File

@ -797,28 +797,37 @@ function add_tor_bridge {
} }
function remove_tor_bridge { function remove_tor_bridge {
bridge_removed=
data=$(tempfile 2>/dev/null) data=$(tempfile 2>/dev/null)
trap "rm -f $data" 0 1 2 5 15 trap "rm -f $data" 0 1 2 5 15
dialog --backtitle $"Freedombone Control Panel" \ dialog --title $"Remove obfs4 Tor bridge" \
--title $"Remove obfs4 Tor bridge" \ --backtitle $"Freedombone Control Panel" \
--form "\n" 7 60 1 \ --inputbox $"Enter the IP address, key or Nickname of the bridge" 8 65 2>$data
$"IP address:" 1 1 " . . . " 1 15 16 16 \
2> $data
sel=$? sel=$?
case $sel in case $sel in
1) return;; 0)
255) return;; response=$(<$data)
if [ ${#response} -gt 2 ]; then
if [[ "${response}" != *" "* ]]; then
if [[ "${response}" == *"."* ]]; then
if grep "Bridge ${response}" /etc/tor/torrc; then
tor_remove_bridge "${response}"
bridge_removed=1
fi
else
if grep " $response" /etc/tor/torrc; then
tor_remove_bridge "${response}"
bridge_removed=1
fi
fi
fi
fi
;;
esac esac
bridge_ip_address=$(cat $data | sed -n 1p) if [ $bridge_removed ]; then
if [[ "${bridge_ip_address}" == *" "* ]]; then
return
fi
if [[ "${bridge_ip_address}" != *"."* ]]; then
return
fi
tor_remove_bridge "${bridge_ip_address}"
dialog --title $"Remove obfs4 Tor bridge" \ dialog --title $"Remove obfs4 Tor bridge" \
--msgbox $"Bridge removed" 6 40 --msgbox $"Bridge removed" 6 40
fi
} }
function add_tor_bridge_relay { function add_tor_bridge_relay {

View File

@ -447,7 +447,15 @@ function tor_remove_bridge {
bridge_ip_address="$1" bridge_ip_address="$1"
bridge_type='obfs4' bridge_type='obfs4'
if [[ "$bridge_ip_address" == *"."* ]]; then
bridge_str="Bridge $bridge_type ${bridge_ip_address}" bridge_str="Bridge $bridge_type ${bridge_ip_address}"
else
if grep " ${bridge_ip_address}" /etc/tor/torrc; then
bridge_str=" ${bridge_ip_address}"
else
return
fi
fi
if grep "${bridge_str}" /etc/tor/torrc; then if grep "${bridge_str}" /etc/tor/torrc; then
sed -i "/${bridge_str}/d" /etc/tor/torrc sed -i "/${bridge_str}/d" /etc/tor/torrc
fi fi