Various stability fixes and logging improvements
authorDan Breslau <dbreslau@painless-security.com>
Mon, 20 Feb 2017 23:46:47 +0000 (18:46 -0500)
committerDan Breslau <dbreslau@painless-security.com>
Mon, 20 Feb 2017 23:46:47 +0000 (18:46 -0500)
src/moonshot-id.vala
src/moonshot-identities-manager.vala
src/moonshot-identity-management-view.vala
src/moonshot-identity-manager-app.vala
src/moonshot-local-flat-file-store.vala
src/moonshot-logger.vala

index 42916c5..513b993 100644 (file)
@@ -406,6 +406,7 @@ public class IdCard : Object
     { 
         IdCard card = new IdCard();
         card.display_name = NO_IDENTITY;
     { 
         IdCard card = new IdCard();
         card.display_name = NO_IDENTITY;
+       card._nai = "";
         return card;
     }
 
         return card;
     }
 
index 06f7ef6..aad417e 100644 (file)
@@ -182,7 +182,7 @@ public class IdentityManagerModel : Object {
 
         bool found = false;
         foreach (IdCard id_card in card_list) {
 
         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.
 
             //!!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.
index 00dab3b..f46ba26 100644 (file)
@@ -279,6 +279,11 @@ public class IdentityManagerView : Window {
 
     private IdCardWidget add_id_card_widget(IdCard id_card)
     {
 
     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));
         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));
index c4c8437..350b68e 100644 (file)
@@ -329,9 +329,9 @@ public class IdentityManagerApp {
                                "org.janet.Moonshot",
                                GLib.BusNameOwnerFlags.NONE,
                                bus_acquired_cb,
                                "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) => {
                                (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");
                                    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;
     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,
         GLib.Bus.own_name(GLib.BusType.SESSION,
-                          "org.janet.Moonshot",
+                          our_name,
                           GLib.BusNameOwnerFlags.NONE,
                           bus_acquired_cb,
 
                           // Name acquired callback:
                           (conn, 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;
 
 
                               name_is_owned = true;
 
@@ -374,7 +376,7 @@ public class IdentityManagerApp {
                           },
 
                           // Name lost callback:
                           },
 
                           // Name lost callback:
-                          (conn, name) => {
+                          () => {
                               logger.trace("init_ipc_server: name_lost_closure");
 
                               // This callback usually means that another moonshot is already running.
                               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) {
 
                               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) {
                                       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");
                               } else {
                                   logger.trace("init_ipc_server.name_lost_closure: Showed previously launched identity manager.");
                                   stdout.printf("Showed previously launched identity manager.\n");
index 742ca74..0db247a 100644 (file)
@@ -82,7 +82,7 @@ public class LocalFlatFileStore : Object, IIdentityCardStore {
             key_file.load_from_file(filename, KeyFileFlags.NONE);
         }
         catch (Error e) {
             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;
         }
 
             return;
         }
 
@@ -130,8 +130,8 @@ public class LocalFlatFileStore : Object, IIdentityCardStore {
                 id_card_list.add(id_card);
             }
             catch (Error e) {
                 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);
             }
         }
     }
             }
         }
     }
index 4c4c7fc..c66aa7e 100644 (file)
@@ -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");
 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 */
 }
 
 /** Logger class that wraps the Log4Vala logger */