[tor-commits] [orbot/master] Fixes bugs in #289 pertaining to parsing bridges
n8fr8 at torproject.org
n8fr8 at torproject.org
Tue Apr 28 21:05:02 UTC 2020
commit 446dfa6eb91c89e366740dba9c74887671f3968d
Author: bim <dsnake at protonmail.com>
Date: Wed Apr 8 20:41:53 2020 -0400
Fixes bugs in #289 pertaining to parsing bridges
---
.../torproject/android/service/OrbotService.java | 30 ++++++++--------------
1 file changed, 10 insertions(+), 20 deletions(-)
diff --git a/orbotservice/src/main/java/org/torproject/android/service/OrbotService.java b/orbotservice/src/main/java/org/torproject/android/service/OrbotService.java
index dbd36dbd..90d07456 100644
--- a/orbotservice/src/main/java/org/torproject/android/service/OrbotService.java
+++ b/orbotservice/src/main/java/org/torproject/android/service/OrbotService.java
@@ -25,8 +25,6 @@ import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.database.Cursor;
-import android.net.ConnectivityManager;
-import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Build;
import android.os.IBinder;
@@ -37,14 +35,12 @@ import androidx.core.app.NotificationCompat;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import android.text.TextUtils;
import android.util.Log;
-import android.widget.RemoteViews;
import com.jaredrummler.android.shell.CommandResult;
import net.freehaven.tor.control.ConfigEntry;
import net.freehaven.tor.control.TorControlConnection;
-import org.apache.commons.io.IOUtils;
import org.torproject.android.service.util.CustomShell;
import org.torproject.android.service.util.CustomTorResourceInstaller;
import org.torproject.android.service.util.DummyActivity;
@@ -70,7 +66,6 @@ import java.io.InputStreamReader;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.net.Socket;
-import java.text.Normalizer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -78,7 +73,6 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
-import java.util.Set;
import java.util.StringTokenizer;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -1628,10 +1622,8 @@ public class OrbotService extends Service implements TorServiceConstants, OrbotC
if (bridgeList != null && bridgeList.length() > 5) //longer then 1 = some real values here
{
- String[] bridgeListLines = bridgeList.trim().split("\\n");
-
-
- int bridgeIdx = (int)Math.round(Math.random()*((double)bridgeListLines.length));
+ String[] bridgeListLines = parseBridgesFromSettings(bridgeList);
+ int bridgeIdx = (int)Math.floor(Math.random()*((double)bridgeListLines.length));
String bridgeLine = bridgeListLines[bridgeIdx];
extraLines.append("Bridge ");
extraLines.append(bridgeLine);
@@ -1645,7 +1637,6 @@ public class OrbotService extends Service implements TorServiceConstants, OrbotC
}
}**/
-
} else {
String type = "obfs4";
@@ -1786,15 +1777,14 @@ public class OrbotService extends Service implements TorServiceConstants, OrbotC
return extraLines;
}
- public static String flattenToAscii(String string) {
- char[] out = new char[string.length()];
- string = Normalizer.normalize(string, Normalizer.Form.NFD);
- int j = 0;
- for (int i = 0, n = string.length(); i < n; ++i) {
- char c = string.charAt(i);
- if (c <= '\u007F') out[j++] = c;
- }
- return new String(out);
+ /**
+ * @param bridgeList bridges that were manually entered into Orbot settings
+ * @return Array with each bridge as an element, no whitespace entries see issue #289...
+ */
+ private static String[] parseBridgesFromSettings(String bridgeList) {
+ // this regex replaces lines that only contain whitespace with an empty String
+ bridgeList = bridgeList.trim().replaceAll("(?m)^[ \t]*\r?\n", "");
+ return bridgeList.split("\\n");
}
//using Google DNS for now as the public DNS server
More information about the tor-commits
mailing list