]> nmode's Git Repositories - signal-cli/commitdiff
Add helper method to create valid dbus object path
authorAsamK <asamk@gmx.de>
Fri, 2 Jun 2023 19:29:58 +0000 (21:29 +0200)
committerAsamK <asamk@gmx.de>
Fri, 2 Jun 2023 19:29:58 +0000 (21:29 +0200)
src/main/java/org/asamk/signal/DbusConfig.java
src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java
src/main/java/org/asamk/signal/dbus/DbusUtils.java [new file with mode: 0644]

index ddd534c407853c92f209e84085b665f09995e6a5..c4c923cf210884d4f8301ccea4438a0299040f21 100644 (file)
@@ -1,5 +1,7 @@
 package org.asamk.signal;
 
 package org.asamk.signal;
 
+import org.asamk.signal.dbus.DbusUtils;
+
 public class DbusConfig {
 
     private static final String SIGNAL_BUSNAME = "org.asamk.Signal";
 public class DbusConfig {
 
     private static final String SIGNAL_BUSNAME = "org.asamk.Signal";
@@ -18,6 +20,6 @@ public class DbusConfig {
             return SIGNAL_OBJECT_BASE_PATH;
         }
 
             return SIGNAL_OBJECT_BASE_PATH;
         }
 
-        return SIGNAL_OBJECT_BASE_PATH + "/" + account.replace('+', '_');
+        return SIGNAL_OBJECT_BASE_PATH + "/" + DbusUtils.makeValidObjectPathElement(account);
     }
 }
     }
 }
index afc4e03d3ef771e281d85ae4866f076a6d09728e..b1d648869e6e59b83920422f210002208f68d0fb 100644 (file)
@@ -56,6 +56,8 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import static org.asamk.signal.dbus.DbusUtils.makeValidObjectPathElement;
+
 public class DbusSignalImpl implements Signal {
 
     private final Manager m;
 public class DbusSignalImpl implements Signal {
 
     private final Manager m;
@@ -980,11 +982,7 @@ public class DbusSignalImpl implements Signal {
     }
 
     private static String getGroupObjectPath(String basePath, byte[] groupId) {
     }
 
     private static String getGroupObjectPath(String basePath, byte[] groupId) {
-        return basePath + "/Groups/" + Base64.getEncoder()
-                .encodeToString(groupId)
-                .replace("+", "_")
-                .replace("/", "_")
-                .replace("=", "_");
+        return basePath + "/Groups/" + makeValidObjectPathElement(Base64.getEncoder().encodeToString(groupId));
     }
 
     private void updateGroups() {
     }
 
     private void updateGroups() {
diff --git a/src/main/java/org/asamk/signal/dbus/DbusUtils.java b/src/main/java/org/asamk/signal/dbus/DbusUtils.java
new file mode 100644 (file)
index 0000000..eba0ccc
--- /dev/null
@@ -0,0 +1,12 @@
+package org.asamk.signal.dbus;
+
+public final class DbusUtils {
+
+    private DbusUtils() {
+
+    }
+
+    public static String makeValidObjectPathElement(String pathElement) {
+        return pathElement.replaceAll("[^A-Za-z0-9_]", "_");
+    }
+}