+ this.ipc_server = new MoonshotServer (this);
+ logger.trace("init_ipc_server: Constructed new MoonshotServer");
+ GLib.Bus.own_name (GLib.BusType.SESSION,
+ "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_lost_closure");
+ bool shown=false;
+ try {
+ IIdentityManager manager = Bus.get_proxy_sync (BusType.SESSION, name, "/org/janet/moonshot");
+ shown = manager.show_ui();
+ } catch (IOError e) {
+ logger.error("init_ipc_server.name_lost_closure: Caught error: ");
+ }
+ if (!shown) {
+ 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(name));
+ } else {
+ logger.trace("init_ipc_server.name_lost_closure: Showed previously launched identity manager.");
+ stdout.printf("Showed previously launched identity manager.\n");
+ GLib.Process.exit(0);
+ }
+ });