package org.asamk.signal;
+import org.asamk.signal.dbus.DbusUtils;
+
public class DbusConfig {
private static final String SIGNAL_BUSNAME = "org.asamk.Signal";
return SIGNAL_OBJECT_BASE_PATH;
}
- return SIGNAL_OBJECT_BASE_PATH + "/" + account.replace('+', '_');
+ return SIGNAL_OBJECT_BASE_PATH + "/" + DbusUtils.makeValidObjectPathElement(account);
}
}
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;
}
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() {
--- /dev/null
+package org.asamk.signal.dbus;
+
+public final class DbusUtils {
+
+ private DbusUtils() {
+
+ }
+
+ public static String makeValidObjectPathElement(String pathElement) {
+ return pathElement.replaceAll("[^A-Za-z0-9_]", "_");
+ }
+}