From 9b74373c2284425a363d02324fa0b2a760762ea7 Mon Sep 17 00:00:00 2001 From: sk Date: Tue, 10 Jan 2023 15:41:46 +0100 Subject: [PATCH] improve domain check logic --- .../android/api/MastodonAPIController.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/api/MastodonAPIController.java b/mastodon/src/main/java/org/joinmastodon/android/api/MastodonAPIController.java index 6a2dfe8a3..3f8696dd2 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/api/MastodonAPIController.java +++ b/mastodon/src/main/java/org/joinmastodon/android/api/MastodonAPIController.java @@ -61,7 +61,11 @@ public class MastodonAPIController{ String line; while ((line = reader.readLine()) != null) { if (line.isBlank() || line.startsWith("#")) continue; - badDomains.add(line.toLowerCase().trim()); + String[] parts = line.replaceAll("\"", "").split("[\s,;]"); + if (parts.length == 0) continue; + String domain = parts[0].toLowerCase().trim(); + if (domain.isBlank()) continue; + badDomains.add(domain); } } catch (IOException e) { e.printStackTrace(); @@ -73,8 +77,8 @@ public class MastodonAPIController{ } public void submitRequest(final MastodonAPIRequest req){ - final String host = req.getURL().getHost().toLowerCase(); - final boolean isBad = badDomains.stream().anyMatch(host::endsWith); + final String host = req.getURL().getHost(); + final boolean isBad = host == null || badDomains.stream().anyMatch(h -> h.equalsIgnoreCase(host) || host.toLowerCase().endsWith("." + h)); thread.postRunnable(()->{ try{ if (isBad) throw new IllegalArgumentException();