From 29fe8cd1eff5964712c87d001587412c0d1a5e03 Mon Sep 17 00:00:00 2001 From: Dan Breslau Date: Mon, 20 Feb 2017 18:46:47 -0500 Subject: [PATCH] Various stability fixes and logging improvements --- src/moonshot-id.vala | 1 + src/moonshot-identities-manager.vala | 2 +- src/moonshot-identity-management-view.vala | 5 +++++ src/moonshot-identity-manager-app.vala | 18 ++++++++++-------- src/moonshot-local-flat-file-store.vala | 6 +++--- src/moonshot-logger.vala | 4 ++-- 6 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/moonshot-id.vala b/src/moonshot-id.vala index 42916c5..513b993 100644 --- a/src/moonshot-id.vala +++ b/src/moonshot-id.vala @@ -406,6 +406,7 @@ public class IdCard : Object { IdCard card = new IdCard(); card.display_name = NO_IDENTITY; + card._nai = ""; return card; } diff --git a/src/moonshot-identities-manager.vala b/src/moonshot-identities-manager.vala index 06f7ef6..aad417e 100644 --- a/src/moonshot-identities-manager.vala +++ b/src/moonshot-identities-manager.vala @@ -182,7 +182,7 @@ public class IdentityManagerModel : Object { bool found = false; foreach (IdCard id_card in card_list) { - logger.trace(@"load_id_cards: Loading card with display name '$(id_card.display_name)'"); + logger.trace(@"load_id_cards: Loading card with display name '$(id_card.display_name)' and nai '$(id_card.nai)'"); //!!TODO: This uniqueness check really belongs somewhere else -- like where we add // IDs, and/or read them from storage. However, we should never hit this. diff --git a/src/moonshot-identity-management-view.vala b/src/moonshot-identity-management-view.vala index 00dab3b..f46ba26 100644 --- a/src/moonshot-identity-management-view.vala +++ b/src/moonshot-identity-management-view.vala @@ -279,6 +279,11 @@ public class IdentityManagerView : Window { private IdCardWidget add_id_card_widget(IdCard id_card) { + if (id_card == null) { + logger.trace("add_id_card_widget: id_card == null; returning."); + return null; + } + logger.trace("add_id_card_widget: id_card.nai='%s'; selected nai='%s'" .printf(id_card.nai, this.selected_card == null ? "[null selection]" : this.selected_card.nai)); diff --git a/src/moonshot-identity-manager-app.vala b/src/moonshot-identity-manager-app.vala index c4c8437..350b68e 100644 --- a/src/moonshot-identity-manager-app.vala +++ b/src/moonshot-identity-manager-app.vala @@ -329,9 +329,9 @@ public class IdentityManagerApp { "org.janet.Moonshot", GLib.BusNameOwnerFlags.NONE, bus_acquired_cb, - (conn, name) => {logger.trace("init_ipc_server: name_acquired_closure");}, + (conn, name) => {logger.trace("init_ipc_server: name_acquired_closure; conn=" + (conn==null?"null":"non-null"));}, (conn, name) => { - logger.trace("init_ipc_server: name_lost_closure"); + logger.trace("init_ipc_server: name_lost_closure; conn=" + (conn==null?"null":"non-null")); bool shown=false; try { IIdentityManager manager = Bus.get_proxy_sync (BusType.SESSION, name, "/org/janet/moonshot"); @@ -354,14 +354,16 @@ public class IdentityManagerApp { private void init_ipc_server() { this.ipc_server = new MoonshotServer(this); bool shown = false; + var our_name = "org.janet.Moonshot"; GLib.Bus.own_name(GLib.BusType.SESSION, - "org.janet.Moonshot", + our_name, GLib.BusNameOwnerFlags.NONE, bus_acquired_cb, // Name acquired callback: (conn, name) => { - logger.trace(@"init_ipc_server: name_acquired_closure; show_requested=$show_requested"); + logger.trace(@"init_ipc_server: name_acquired_closure; show_requested=$show_requested; conn=" + + (conn==null?"null":"non-null; name='" + name + "'")); name_is_owned = true; @@ -374,7 +376,7 @@ public class IdentityManagerApp { }, // Name lost callback: - (conn, name) => { + () => { logger.trace("init_ipc_server: name_lost_closure"); // This callback usually means that another moonshot is already running. @@ -386,15 +388,15 @@ public class IdentityManagerApp { try { if (!shown) { - IIdentityManager manager = Bus.get_proxy_sync(BusType.SESSION, name, "/org/janet/moonshot"); + IIdentityManager manager = Bus.get_proxy_sync(BusType.SESSION, our_name, "/org/janet/moonshot"); shown = manager.show_ui(); } } catch (IOError e) { logger.error("init_ipc_server.name_lost_closure: Caught IOError: " + e.message); } if (!shown) { - logger.error("init_ipc_server.name_lost_closure: Couldn't own name %s on dbus or show previously launched identity manager".printf(name)); - GLib.error("Couldn't own name %s on dbus or show previously launched identity manager.", name); + logger.error("init_ipc_server.name_lost_closure: Couldn't own name '%s' on dbus or show previously launched identity manager".printf(our_name)); + GLib.error("Couldn't own name '%s' on dbus or show previously launched identity manager.", our_name); } else { logger.trace("init_ipc_server.name_lost_closure: Showed previously launched identity manager."); stdout.printf("Showed previously launched identity manager.\n"); diff --git a/src/moonshot-local-flat-file-store.vala b/src/moonshot-local-flat-file-store.vala index 742ca74..0db247a 100644 --- a/src/moonshot-local-flat-file-store.vala +++ b/src/moonshot-local-flat-file-store.vala @@ -82,7 +82,7 @@ public class LocalFlatFileStore : Object, IIdentityCardStore { key_file.load_from_file(filename, KeyFileFlags.NONE); } catch (Error e) { - stdout.printf("Error: %s\n", e.message); + stdout.printf("Error while attempting to load from %s: %s\n", filename, e.message); return; } @@ -130,8 +130,8 @@ public class LocalFlatFileStore : Object, IIdentityCardStore { id_card_list.add(id_card); } catch (Error e) { - logger.error("load_id_cards: Error while loading keyfile: %s\n".printf(e.message)); - stdout.printf("Error: %s\n", e.message); + logger.error("load_id_cards: Error while loading keyfile %s: %s\n".printf(filename, e.message)); + stdout.printf("Error while attempting to load from %s: %s\n", filename, e.message); } } } diff --git a/src/moonshot-logger.vala b/src/moonshot-logger.vala index 4c4c7fc..c66aa7e 100644 --- a/src/moonshot-logger.vala +++ b/src/moonshot-logger.vala @@ -41,8 +41,8 @@ public MoonshotLogger get_logger(string name) { static void glib_default_log_handler(string? log_domain, LogLevelFlags log_level, string message) { Log4Vala.Logger logger = Log4Vala.Logger.get_logger(log_domain ?? "Glib"); - stderr.printf(log_level.to_string() + " : " + message + "\n"); - logger.error("Glib error level: " + log_level.to_string() + " : " + message); + stderr.printf(log_level.to_string() + " : " + message ?? "" + "\n"); + logger.error("Glib error level: " + log_level.to_string() + " : " + (message ?? "")); } /** Logger class that wraps the Log4Vala logger */ -- 2.1.4