From ccce539843c8f61d4b34b5c608eb422760b0c48e Mon Sep 17 00:00:00 2001 From: AsamK Date: Sun, 13 Feb 2022 20:08:02 +0100 Subject: [PATCH] Improve error messages when daemon is already running --- .../org/asamk/signal/commands/Commands.java | 2 +- .../asamk/signal/commands/DaemonCommand.java | 28 +++++++++---------- .../java/org/asamk/signal/util/IOUtils.java | 2 +- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/asamk/signal/commands/Commands.java b/src/main/java/org/asamk/signal/commands/Commands.java index aee9a7ba..29b28da0 100644 --- a/src/main/java/org/asamk/signal/commands/Commands.java +++ b/src/main/java/org/asamk/signal/commands/Commands.java @@ -29,8 +29,8 @@ public class Commands { addCommand(new RegisterCommand()); addCommand(new RemoveContactCommand()); addCommand(new RemoveDeviceCommand()); - addCommand(new RemoteDeleteCommand()); addCommand(new RemovePinCommand()); + addCommand(new RemoteDeleteCommand()); addCommand(new SendCommand()); addCommand(new SendContactsCommand()); addCommand(new SendReactionCommand()); diff --git a/src/main/java/org/asamk/signal/commands/DaemonCommand.java b/src/main/java/org/asamk/signal/commands/DaemonCommand.java index 79e0cd82..e224bf1c 100644 --- a/src/main/java/org/asamk/signal/commands/DaemonCommand.java +++ b/src/main/java/org/asamk/signal/commands/DaemonCommand.java @@ -340,41 +340,39 @@ public class DaemonCommand implements MultiLocalCommand, LocalCommand { } else { busType = DBusConnection.DBusBusType.SESSION; } + DBusConnection conn; try { - var conn = DBusConnection.getConnection(busType); + conn = DBusConnection.getConnection(busType); dbusRunner.run(conn, DbusConfig.getObjectPath()); + } catch (DBusException e) { + throw new UnexpectedErrorException("Dbus command failed: " + e.getMessage(), e); + } + try { conn.requestBusName(DbusConfig.getBusname()); - - logger.info("DBus daemon running on {} bus: {}", busType, DbusConfig.getBusname()); } catch (DBusException e) { - logger.error("Dbus command failed", e); - throw new UnexpectedErrorException("Dbus command failed", e); + throw new UnexpectedErrorException("Dbus command failed, maybe signal-cli dbus daemon is already running: " + + e.getMessage(), e); } + + logger.info("DBus daemon running on {} bus: {}", busType, DbusConfig.getBusname()); } private Thread exportMultiAccountManager( final DBusConnection conn, final Manager m, final boolean noReceiveOnStart ) { - try { - final var objectPath = DbusConfig.getObjectPath(m.getSelfNumber()); - return exportDbusObject(conn, objectPath, m, noReceiveOnStart); - } catch (DBusException e) { - logger.error("Failed to export object", e); - return null; - } + final var objectPath = DbusConfig.getObjectPath(m.getSelfNumber()); + return exportDbusObject(conn, objectPath, m, noReceiveOnStart); } private Thread exportDbusObject( final DBusConnection conn, final String objectPath, final Manager m, final boolean noReceiveOnStart - ) throws DBusException { + ) { final var signal = new DbusSignalImpl(m, conn, objectPath, noReceiveOnStart); final var initThread = new Thread(signal::initObjects); initThread.setName("dbus-init"); initThread.start(); - logger.debug("Exported dbus object: " + objectPath); - return initThread; } diff --git a/src/main/java/org/asamk/signal/util/IOUtils.java b/src/main/java/org/asamk/signal/util/IOUtils.java index b772887b..25850664 100644 --- a/src/main/java/org/asamk/signal/util/IOUtils.java +++ b/src/main/java/org/asamk/signal/util/IOUtils.java @@ -136,7 +136,7 @@ public class IOUtils { logger.info("Listening on socket: " + address); postBind(address); } catch (IOException e) { - throw new IOErrorException("Failed to bind socket: " + e.getMessage(), e); + throw new IOErrorException("Failed to bind socket " + address + ": " + e.getMessage(), e); } return serverChannel; } -- 2.50.1