--- /dev/null
+/* dbus-client.c generated by valac 0.10.4, the Vala compiler
+ * generated from dbus-client.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+#include <dbus/dbus-glib-lowlevel.h>
+#include <dbus/dbus-glib.h>
+#include <dbus/dbus.h>
+#include <stdio.h>
+
+
+#define TYPE_MOONSHOT (moonshot_get_type ())
+#define MOONSHOT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT, Moonshot))
+#define IS_MOONSHOT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT))
+#define MOONSHOT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MOONSHOT, MoonshotIface))
+
+typedef struct _Moonshot Moonshot;
+typedef struct _MoonshotIface MoonshotIface;
+typedef struct _DBusObjectVTable _DBusObjectVTable;
+#define _g_free0(var) (var = (g_free (var), NULL))
+typedef struct _MoonshotDBusProxy MoonshotDBusProxy;
+typedef DBusGProxyClass MoonshotDBusProxyClass;
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+#define _dbus_g_connection_unref0(var) ((var == NULL) ? NULL : (var = (dbus_g_connection_unref (var), NULL)))
+#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
+
+struct _MoonshotIface {
+ GTypeInterface parent_iface;
+ gboolean (*get_identity) (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** certificate_out, GError** error);
+};
+
+struct _DBusObjectVTable {
+ void (*register_object) (DBusConnection*, const char*, void*);
+};
+
+struct _MoonshotDBusProxy {
+ DBusGProxy parent_instance;
+ gboolean disposed;
+};
+
+
+
+Moonshot* moonshot_dbus_proxy_new (DBusGConnection* connection, const char* name, const char* path);
+GType moonshot_get_type (void) G_GNUC_CONST;
+gboolean moonshot_get_identity (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** certificate_out, GError** error);
+static void _vala_dbus_register_object (DBusConnection* connection, const char* path, void* object);
+static void _vala_dbus_unregister_object (gpointer connection, GObject* object);
+void moonshot_dbus_register_object (DBusConnection* connection, const char* path, void* object);
+void _moonshot_dbus_unregister (DBusConnection* connection, void* _user_data_);
+DBusHandlerResult moonshot_dbus_message (DBusConnection* connection, DBusMessage* message, void* object);
+static DBusHandlerResult _dbus_moonshot_introspect (Moonshot* self, DBusConnection* connection, DBusMessage* message);
+static DBusHandlerResult _dbus_moonshot_property_get_all (Moonshot* self, DBusConnection* connection, DBusMessage* message);
+static DBusHandlerResult _dbus_moonshot_get_identity (Moonshot* self, DBusConnection* connection, DBusMessage* message);
+GType moonshot_dbus_proxy_get_type (void) G_GNUC_CONST;
+DBusHandlerResult moonshot_dbus_proxy_filter (DBusConnection* connection, DBusMessage* message, void* user_data);
+enum {
+ MOONSHOT_DBUS_PROXY_DUMMY_PROPERTY
+};
+static gboolean moonshot_dbus_proxy_get_identity (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** certificate_out, GError** error);
+static void moonshot_dbus_proxy_moonshot__interface_init (MoonshotIface* iface);
+static void moonshot_dbus_proxy_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
+static void moonshot_dbus_proxy_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
+void _vala_main (void);
+
+static const DBusObjectPathVTable _moonshot_dbus_path_vtable = {_moonshot_dbus_unregister, moonshot_dbus_message};
+static const _DBusObjectVTable _moonshot_dbus_vtable = {moonshot_dbus_register_object};
+
+
+gboolean moonshot_get_identity (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** certificate_out, GError** error) {
+ return MOONSHOT_GET_INTERFACE (self)->get_identity (self, nai, password, service, nai_out, password_out, certificate_out, error);
+}
+
+
+static void _vala_dbus_register_object (DBusConnection* connection, const char* path, void* object) {
+ const _DBusObjectVTable * vtable;
+ vtable = g_type_get_qdata (G_TYPE_FROM_INSTANCE (object), g_quark_from_static_string ("DBusObjectVTable"));
+ if (vtable) {
+ vtable->register_object (connection, path, object);
+ } else {
+ g_warning ("Object does not implement any D-Bus interface");
+ }
+}
+
+
+static void _vala_dbus_unregister_object (gpointer connection, GObject* object) {
+ char* path;
+ path = g_object_steal_data ((GObject*) object, "dbus_object_path");
+ dbus_connection_unregister_object_path (connection, path);
+ g_free (path);
+}
+
+
+void _moonshot_dbus_unregister (DBusConnection* connection, void* _user_data_) {
+}
+
+
+static DBusHandlerResult _dbus_moonshot_introspect (Moonshot* self, DBusConnection* connection, DBusMessage* message) {
+ DBusMessage* reply;
+ DBusMessageIter iter;
+ GString* xml_data;
+ char** children;
+ int i;
+ reply = dbus_message_new_method_return (message);
+ dbus_message_iter_init_append (reply, &iter);
+ xml_data = g_string_new ("<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\" \"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n");
+ g_string_append (xml_data, "<node>\n<interface name=\"org.freedesktop.DBus.Introspectable\">\n <method name=\"Introspect\">\n <arg name=\"data\" direction=\"out\" type=\"s\"/>\n </method>\n</interface>\n<interface name=\"org.freedesktop.DBus.Properties\">\n <method name=\"Get\">\n <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n <arg name=\"propname\" direction=\"in\" type=\"s\"/>\n <arg name=\"value\" direction=\"out\" type=\"v\"/>\n </method>\n <method name=\"Set\">\n <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n <arg name=\"propname\" direction=\"in\" type=\"s\"/>\n <arg name=\"value\" direction=\"in\" type=\"v\"/>\n </method>\n <method name=\"GetAll\">\n <arg name=\"interface\" direction=\"in\" type=\"s\"/>\n <arg name=\"props\" direction=\"out\" type=\"a{sv}\"/>\n </method>\n</interface>\n<interface name=\"org.janet.Moonshot\">\n <method name=\"GetIdentity\">\n <arg name=\"nai\" type=\"s\" direction=\"in\"/>\n <arg name=\"password\" type=\"s\" direction=\"in\"/>\n <arg name=\"service\" type=\"s\" direction=\"in\"/>\n <arg name=\"nai_out\" type=\"s\" direction=\"out\"/>\n <arg name=\"password_out\" type=\"s\" direction=\"out\"/>\n <arg name=\"certificate_out\" type=\"s\" direction=\"out\"/>\n <arg name=\"result\" type=\"b\" direction=\"out\"/>\n </method>\n</interface>\n");
+ dbus_connection_list_registered (connection, g_object_get_data ((GObject *) self, "dbus_object_path"), &children);
+ for (i = 0; children[i]; i++) {
+ g_string_append_printf (xml_data, "<node name=\"%s\"/>\n", children[i]);
+ }
+ dbus_free_string_array (children);
+ g_string_append (xml_data, "</node>\n");
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &xml_data->str);
+ g_string_free (xml_data, TRUE);
+ if (reply) {
+ dbus_connection_send (connection, reply, NULL);
+ dbus_message_unref (reply);
+ return DBUS_HANDLER_RESULT_HANDLED;
+ } else {
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+}
+
+
+static DBusHandlerResult _dbus_moonshot_property_get_all (Moonshot* self, DBusConnection* connection, DBusMessage* message) {
+ DBusMessage* reply;
+ DBusMessageIter iter, reply_iter, subiter;
+ char* interface_name;
+ const char* _tmp0_;
+ if (strcmp (dbus_message_get_signature (message), "s")) {
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+ dbus_message_iter_init (message, &iter);
+ reply = dbus_message_new_method_return (message);
+ dbus_message_iter_init_append (reply, &reply_iter);
+ dbus_message_iter_get_basic (&iter, &_tmp0_);
+ dbus_message_iter_next (&iter);
+ interface_name = g_strdup (_tmp0_);
+ if (strcmp (interface_name, "org.janet.Moonshot") == 0) {
+ dbus_message_iter_open_container (&reply_iter, DBUS_TYPE_ARRAY, "{sv}", &subiter);
+ dbus_message_iter_close_container (&reply_iter, &subiter);
+ } else {
+ dbus_message_unref (reply);
+ reply = NULL;
+ }
+ g_free (interface_name);
+ if (reply) {
+ dbus_connection_send (connection, reply, NULL);
+ dbus_message_unref (reply);
+ return DBUS_HANDLER_RESULT_HANDLED;
+ } else {
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+}
+
+
+static DBusHandlerResult _dbus_moonshot_get_identity (Moonshot* self, DBusConnection* connection, DBusMessage* message) {
+ DBusMessageIter iter;
+ GError* error;
+ char* nai = NULL;
+ const char* _tmp1_;
+ char* password = NULL;
+ const char* _tmp2_;
+ char* service = NULL;
+ const char* _tmp3_;
+ char* nai_out = NULL;
+ char* password_out = NULL;
+ char* certificate_out = NULL;
+ gboolean result;
+ DBusMessage* reply;
+ const char* _tmp4_;
+ const char* _tmp5_;
+ const char* _tmp6_;
+ dbus_bool_t _tmp7_;
+ error = NULL;
+ if (strcmp (dbus_message_get_signature (message), "sss")) {
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+ dbus_message_iter_init (message, &iter);
+ dbus_message_iter_get_basic (&iter, &_tmp1_);
+ dbus_message_iter_next (&iter);
+ nai = g_strdup (_tmp1_);
+ dbus_message_iter_get_basic (&iter, &_tmp2_);
+ dbus_message_iter_next (&iter);
+ password = g_strdup (_tmp2_);
+ dbus_message_iter_get_basic (&iter, &_tmp3_);
+ dbus_message_iter_next (&iter);
+ service = g_strdup (_tmp3_);
+ result = moonshot_get_identity (self, nai, password, service, &nai_out, &password_out, &certificate_out, &error);
+ if (error) {
+ if (error->domain == DBUS_GERROR) {
+ switch (error->code) {
+ case DBUS_GERROR_FAILED:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Failed", error->message);
+ break;
+ case DBUS_GERROR_NO_MEMORY:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.NoMemory", error->message);
+ break;
+ case DBUS_GERROR_SERVICE_UNKNOWN:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.ServiceUnknown", error->message);
+ break;
+ case DBUS_GERROR_NAME_HAS_NO_OWNER:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.NameHasNoOwner", error->message);
+ break;
+ case DBUS_GERROR_NO_REPLY:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.NoReply", error->message);
+ break;
+ case DBUS_GERROR_IO_ERROR:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.IOError", error->message);
+ break;
+ case DBUS_GERROR_BAD_ADDRESS:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.BadAddress", error->message);
+ break;
+ case DBUS_GERROR_NOT_SUPPORTED:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.NotSupported", error->message);
+ break;
+ case DBUS_GERROR_LIMITS_EXCEEDED:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.LimitsExceeded", error->message);
+ break;
+ case DBUS_GERROR_ACCESS_DENIED:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.AccessDenied", error->message);
+ break;
+ case DBUS_GERROR_AUTH_FAILED:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.AuthFailed", error->message);
+ break;
+ case DBUS_GERROR_NO_SERVER:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.NoServer", error->message);
+ break;
+ case DBUS_GERROR_TIMEOUT:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Timeout", error->message);
+ break;
+ case DBUS_GERROR_NO_NETWORK:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.NoNetwork", error->message);
+ break;
+ case DBUS_GERROR_ADDRESS_IN_USE:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.AddressInUse", error->message);
+ break;
+ case DBUS_GERROR_DISCONNECTED:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Disconnected", error->message);
+ break;
+ case DBUS_GERROR_INVALID_ARGS:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.InvalidArgs", error->message);
+ break;
+ case DBUS_GERROR_FILE_NOT_FOUND:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.FileNotFound", error->message);
+ break;
+ case DBUS_GERROR_FILE_EXISTS:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.FileExists", error->message);
+ break;
+ case DBUS_GERROR_UNKNOWN_METHOD:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.UnknownMethod", error->message);
+ break;
+ case DBUS_GERROR_TIMED_OUT:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.TimedOut", error->message);
+ break;
+ case DBUS_GERROR_MATCH_RULE_NOT_FOUND:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.MatchRuleNotFound", error->message);
+ break;
+ case DBUS_GERROR_MATCH_RULE_INVALID:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.MatchRuleInvalid", error->message);
+ break;
+ case DBUS_GERROR_SPAWN_EXEC_FAILED:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Spawn.ExecFailed", error->message);
+ break;
+ case DBUS_GERROR_SPAWN_FORK_FAILED:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Spawn.ForkFailed", error->message);
+ break;
+ case DBUS_GERROR_SPAWN_CHILD_EXITED:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Spawn.ChildExited", error->message);
+ break;
+ case DBUS_GERROR_SPAWN_CHILD_SIGNALED:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Spawn.ChildSignaled", error->message);
+ break;
+ case DBUS_GERROR_SPAWN_FAILED:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.Spawn.Failed", error->message);
+ break;
+ case DBUS_GERROR_UNIX_PROCESS_ID_UNKNOWN:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.UnixProcessIdUnknown", error->message);
+ break;
+ case DBUS_GERROR_INVALID_SIGNATURE:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.InvalidSignature", error->message);
+ break;
+ case DBUS_GERROR_INVALID_FILE_CONTENT:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.InvalidFileContent", error->message);
+ break;
+ case DBUS_GERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.SELinuxSecurityContextUnknown", error->message);
+ break;
+ case DBUS_GERROR_REMOTE_EXCEPTION:
+ reply = dbus_message_new_error (message, "org.freedesktop.DBus.Error.RemoteException", error->message);
+ break;
+ }
+ }
+ dbus_connection_send (connection, reply, NULL);
+ dbus_message_unref (reply);
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
+ reply = dbus_message_new_method_return (message);
+ dbus_message_iter_init_append (reply, &iter);
+ _g_free0 (nai);
+ _g_free0 (password);
+ _g_free0 (service);
+ _tmp4_ = nai_out;
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp4_);
+ _g_free0 (nai_out);
+ _tmp5_ = password_out;
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp5_);
+ _g_free0 (password_out);
+ _tmp6_ = certificate_out;
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &_tmp6_);
+ _g_free0 (certificate_out);
+ _tmp7_ = result;
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_BOOLEAN, &_tmp7_);
+ if (reply) {
+ dbus_connection_send (connection, reply, NULL);
+ dbus_message_unref (reply);
+ return DBUS_HANDLER_RESULT_HANDLED;
+ } else {
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+}
+
+
+DBusHandlerResult moonshot_dbus_message (DBusConnection* connection, DBusMessage* message, void* object) {
+ DBusHandlerResult result;
+ result = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ if (dbus_message_is_method_call (message, "org.freedesktop.DBus.Introspectable", "Introspect")) {
+ result = _dbus_moonshot_introspect (object, connection, message);
+ } else if (dbus_message_is_method_call (message, "org.freedesktop.DBus.Properties", "GetAll")) {
+ result = _dbus_moonshot_property_get_all (object, connection, message);
+ } else if (dbus_message_is_method_call (message, "org.janet.Moonshot", "GetIdentity")) {
+ result = _dbus_moonshot_get_identity (object, connection, message);
+ }
+ if (result == DBUS_HANDLER_RESULT_HANDLED) {
+ return result;
+ } else {
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ }
+}
+
+
+void moonshot_dbus_register_object (DBusConnection* connection, const char* path, void* object) {
+ if (!g_object_get_data (object, "dbus_object_path")) {
+ g_object_set_data (object, "dbus_object_path", g_strdup (path));
+ dbus_connection_register_object_path (connection, path, &_moonshot_dbus_path_vtable, object);
+ g_object_weak_ref (object, _vala_dbus_unregister_object, connection);
+ }
+}
+
+
+static void moonshot_base_init (MoonshotIface * iface) {
+ static gboolean initialized = FALSE;
+ if (!initialized) {
+ initialized = TRUE;
+ g_type_set_qdata (TYPE_MOONSHOT, g_quark_from_static_string ("DBusObjectVTable"), (void*) (&_moonshot_dbus_vtable));
+ }
+}
+
+
+GType moonshot_get_type (void) {
+ static volatile gsize moonshot_type_id__volatile = 0;
+ if (g_once_init_enter (&moonshot_type_id__volatile)) {
+ static const GTypeInfo g_define_type_info = { sizeof (MoonshotIface), (GBaseInitFunc) moonshot_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
+ GType moonshot_type_id;
+ moonshot_type_id = g_type_register_static (G_TYPE_INTERFACE, "Moonshot", &g_define_type_info, 0);
+ g_type_interface_add_prerequisite (moonshot_type_id, G_TYPE_OBJECT);
+ g_type_set_qdata (moonshot_type_id, g_quark_from_string ("ValaDBusInterfaceProxyType"), &moonshot_dbus_proxy_get_type);
+ g_once_init_leave (&moonshot_type_id__volatile, moonshot_type_id);
+ }
+ return moonshot_type_id__volatile;
+}
+
+
+G_DEFINE_TYPE_EXTENDED (MoonshotDBusProxy, moonshot_dbus_proxy, DBUS_TYPE_G_PROXY, 0, G_IMPLEMENT_INTERFACE (TYPE_MOONSHOT, moonshot_dbus_proxy_moonshot__interface_init) );
+Moonshot* moonshot_dbus_proxy_new (DBusGConnection* connection, const char* name, const char* path) {
+ Moonshot* self;
+ self = g_object_new (moonshot_dbus_proxy_get_type (), "connection", connection, "name", name, "path", path, "interface", "org.janet.Moonshot", NULL);
+ return self;
+}
+
+
+static GObject* moonshot_dbus_proxy_construct (GType gtype, guint n_properties, GObjectConstructParam* properties) {
+ GObject* self;
+ DBusGConnection *connection;
+ char* path;
+ char* filter;
+ self = G_OBJECT_CLASS (moonshot_dbus_proxy_parent_class)->constructor (gtype, n_properties, properties);
+ g_object_get (self, "connection", &connection, NULL);
+ g_object_get (self, "path", &path, NULL);
+ dbus_connection_add_filter (dbus_g_connection_get_connection (connection), moonshot_dbus_proxy_filter, self, NULL);
+ filter = g_strdup_printf ("type='signal',path='%s',interface='org.janet.Moonshot'", path);
+ dbus_bus_add_match (dbus_g_connection_get_connection (connection), filter, NULL);
+ dbus_g_connection_unref (connection);
+ g_free (path);
+ g_free (filter);
+ return self;
+}
+
+
+DBusHandlerResult moonshot_dbus_proxy_filter (DBusConnection* connection, DBusMessage* message, void* user_data) {
+ if (dbus_message_has_path (message, dbus_g_proxy_get_path (user_data))) {
+ }
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+}
+
+
+static void moonshot_dbus_proxy_dispose (GObject* self) {
+ DBusGConnection *connection;
+ if (((MoonshotDBusProxy*) self)->disposed) {
+ return;
+ }
+ ((MoonshotDBusProxy*) self)->disposed = TRUE;
+ g_object_get (self, "connection", &connection, NULL);
+ dbus_connection_remove_filter (dbus_g_connection_get_connection (connection), moonshot_dbus_proxy_filter, self);
+ G_OBJECT_CLASS (moonshot_dbus_proxy_parent_class)->dispose (self);
+}
+
+
+static void moonshot_dbus_proxy_class_init (MoonshotDBusProxyClass* klass) {
+ G_OBJECT_CLASS (klass)->constructor = moonshot_dbus_proxy_construct;
+ G_OBJECT_CLASS (klass)->dispose = moonshot_dbus_proxy_dispose;
+ G_OBJECT_CLASS (klass)->get_property = moonshot_dbus_proxy_get_property;
+ G_OBJECT_CLASS (klass)->set_property = moonshot_dbus_proxy_set_property;
+}
+
+
+static void moonshot_dbus_proxy_init (MoonshotDBusProxy* self) {
+}
+
+
+static gboolean moonshot_dbus_proxy_get_identity (Moonshot* self, const char* nai, const char* password, const char* service, char** nai_out, char** password_out, char** certificate_out, GError** error) {
+ DBusError _dbus_error;
+ DBusGConnection *_connection;
+ DBusMessage *_message, *_reply;
+ DBusMessageIter _iter;
+ const char* _tmp0_;
+ const char* _tmp1_;
+ const char* _tmp2_;
+ char* _nai_out;
+ const char* _tmp3_;
+ char* _password_out;
+ const char* _tmp4_;
+ char* _certificate_out;
+ const char* _tmp5_;
+ gboolean _result;
+ dbus_bool_t _tmp6_;
+ if (((MoonshotDBusProxy*) self)->disposed) {
+ g_set_error (error, DBUS_GERROR, DBUS_GERROR_DISCONNECTED, "%s", "Connection is closed");
+ return FALSE;
+ }
+ _message = dbus_message_new_method_call (dbus_g_proxy_get_bus_name ((DBusGProxy*) self), dbus_g_proxy_get_path ((DBusGProxy*) self), "org.janet.Moonshot", "GetIdentity");
+ dbus_message_iter_init_append (_message, &_iter);
+ _tmp0_ = nai;
+ dbus_message_iter_append_basic (&_iter, DBUS_TYPE_STRING, &_tmp0_);
+ _tmp1_ = password;
+ dbus_message_iter_append_basic (&_iter, DBUS_TYPE_STRING, &_tmp1_);
+ _tmp2_ = service;
+ dbus_message_iter_append_basic (&_iter, DBUS_TYPE_STRING, &_tmp2_);
+ g_object_get (self, "connection", &_connection, NULL);
+ dbus_error_init (&_dbus_error);
+ _reply = dbus_connection_send_with_reply_and_block (dbus_g_connection_get_connection (_connection), _message, -1, &_dbus_error);
+ dbus_g_connection_unref (_connection);
+ dbus_message_unref (_message);
+ if (dbus_error_is_set (&_dbus_error)) {
+ GQuark _edomain = 0;
+ gint _ecode = 0;
+ if (strstr (_dbus_error.name, "org.freedesktop.DBus.Error") == _dbus_error.name) {
+ const char* _tmp7_;
+ _edomain = DBUS_GERROR;
+ _tmp7_ = _dbus_error.name + 27;
+ if (strcmp (_tmp7_, "Failed") == 0) {
+ _ecode = DBUS_GERROR_FAILED;
+ } else if (strcmp (_tmp7_, "NoMemory") == 0) {
+ _ecode = DBUS_GERROR_NO_MEMORY;
+ } else if (strcmp (_tmp7_, "ServiceUnknown") == 0) {
+ _ecode = DBUS_GERROR_SERVICE_UNKNOWN;
+ } else if (strcmp (_tmp7_, "NameHasNoOwner") == 0) {
+ _ecode = DBUS_GERROR_NAME_HAS_NO_OWNER;
+ } else if (strcmp (_tmp7_, "NoReply") == 0) {
+ _ecode = DBUS_GERROR_NO_REPLY;
+ } else if (strcmp (_tmp7_, "IOError") == 0) {
+ _ecode = DBUS_GERROR_IO_ERROR;
+ } else if (strcmp (_tmp7_, "BadAddress") == 0) {
+ _ecode = DBUS_GERROR_BAD_ADDRESS;
+ } else if (strcmp (_tmp7_, "NotSupported") == 0) {
+ _ecode = DBUS_GERROR_NOT_SUPPORTED;
+ } else if (strcmp (_tmp7_, "LimitsExceeded") == 0) {
+ _ecode = DBUS_GERROR_LIMITS_EXCEEDED;
+ } else if (strcmp (_tmp7_, "AccessDenied") == 0) {
+ _ecode = DBUS_GERROR_ACCESS_DENIED;
+ } else if (strcmp (_tmp7_, "AuthFailed") == 0) {
+ _ecode = DBUS_GERROR_AUTH_FAILED;
+ } else if (strcmp (_tmp7_, "NoServer") == 0) {
+ _ecode = DBUS_GERROR_NO_SERVER;
+ } else if (strcmp (_tmp7_, "Timeout") == 0) {
+ _ecode = DBUS_GERROR_TIMEOUT;
+ } else if (strcmp (_tmp7_, "NoNetwork") == 0) {
+ _ecode = DBUS_GERROR_NO_NETWORK;
+ } else if (strcmp (_tmp7_, "AddressInUse") == 0) {
+ _ecode = DBUS_GERROR_ADDRESS_IN_USE;
+ } else if (strcmp (_tmp7_, "Disconnected") == 0) {
+ _ecode = DBUS_GERROR_DISCONNECTED;
+ } else if (strcmp (_tmp7_, "InvalidArgs") == 0) {
+ _ecode = DBUS_GERROR_INVALID_ARGS;
+ } else if (strcmp (_tmp7_, "FileNotFound") == 0) {
+ _ecode = DBUS_GERROR_FILE_NOT_FOUND;
+ } else if (strcmp (_tmp7_, "FileExists") == 0) {
+ _ecode = DBUS_GERROR_FILE_EXISTS;
+ } else if (strcmp (_tmp7_, "UnknownMethod") == 0) {
+ _ecode = DBUS_GERROR_UNKNOWN_METHOD;
+ } else if (strcmp (_tmp7_, "TimedOut") == 0) {
+ _ecode = DBUS_GERROR_TIMED_OUT;
+ } else if (strcmp (_tmp7_, "MatchRuleNotFound") == 0) {
+ _ecode = DBUS_GERROR_MATCH_RULE_NOT_FOUND;
+ } else if (strcmp (_tmp7_, "MatchRuleInvalid") == 0) {
+ _ecode = DBUS_GERROR_MATCH_RULE_INVALID;
+ } else if (strcmp (_tmp7_, "Spawn.ExecFailed") == 0) {
+ _ecode = DBUS_GERROR_SPAWN_EXEC_FAILED;
+ } else if (strcmp (_tmp7_, "Spawn.ForkFailed") == 0) {
+ _ecode = DBUS_GERROR_SPAWN_FORK_FAILED;
+ } else if (strcmp (_tmp7_, "Spawn.ChildExited") == 0) {
+ _ecode = DBUS_GERROR_SPAWN_CHILD_EXITED;
+ } else if (strcmp (_tmp7_, "Spawn.ChildSignaled") == 0) {
+ _ecode = DBUS_GERROR_SPAWN_CHILD_SIGNALED;
+ } else if (strcmp (_tmp7_, "Spawn.Failed") == 0) {
+ _ecode = DBUS_GERROR_SPAWN_FAILED;
+ } else if (strcmp (_tmp7_, "UnixProcessIdUnknown") == 0) {
+ _ecode = DBUS_GERROR_UNIX_PROCESS_ID_UNKNOWN;
+ } else if (strcmp (_tmp7_, "InvalidSignature") == 0) {
+ _ecode = DBUS_GERROR_INVALID_SIGNATURE;
+ } else if (strcmp (_tmp7_, "InvalidFileContent") == 0) {
+ _ecode = DBUS_GERROR_INVALID_FILE_CONTENT;
+ } else if (strcmp (_tmp7_, "SELinuxSecurityContextUnknown") == 0) {
+ _ecode = DBUS_GERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN;
+ } else if (strcmp (_tmp7_, "RemoteException") == 0) {
+ _ecode = DBUS_GERROR_REMOTE_EXCEPTION;
+ }
+ }
+ g_set_error (error, _edomain, _ecode, "%s", _dbus_error.message);
+ dbus_error_free (&_dbus_error);
+ return FALSE;
+ }
+ if (strcmp (dbus_message_get_signature (_reply), "sssb")) {
+ g_set_error (error, DBUS_GERROR, DBUS_GERROR_INVALID_SIGNATURE, "Invalid signature, expected \"%s\", got \"%s\"", "sssb", dbus_message_get_signature (_reply));
+ dbus_message_unref (_reply);
+ return FALSE;
+ }
+ dbus_message_iter_init (_reply, &_iter);
+ dbus_message_iter_get_basic (&_iter, &_tmp3_);
+ dbus_message_iter_next (&_iter);
+ _nai_out = g_strdup (_tmp3_);
+ *nai_out = _nai_out;
+ dbus_message_iter_get_basic (&_iter, &_tmp4_);
+ dbus_message_iter_next (&_iter);
+ _password_out = g_strdup (_tmp4_);
+ *password_out = _password_out;
+ dbus_message_iter_get_basic (&_iter, &_tmp5_);
+ dbus_message_iter_next (&_iter);
+ _certificate_out = g_strdup (_tmp5_);
+ *certificate_out = _certificate_out;
+ dbus_message_iter_get_basic (&_iter, &_tmp6_);
+ dbus_message_iter_next (&_iter);
+ _result = _tmp6_;
+ dbus_message_unref (_reply);
+ return _result;
+}
+
+
+static void moonshot_dbus_proxy_moonshot__interface_init (MoonshotIface* iface) {
+ iface->get_identity = moonshot_dbus_proxy_get_identity;
+}
+
+
+static void moonshot_dbus_proxy_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
+}
+
+
+static void moonshot_dbus_proxy_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
+}
+
+
+void _vala_main (void) {
+ GError * _inner_error_ = NULL;
+ {
+ char* nai_out;
+ char* password_out;
+ char* certificate_out;
+ DBusGConnection* conn;
+ Moonshot* demo;
+ char* _tmp0_ = NULL;
+ gboolean _tmp1_;
+ char* _tmp2_;
+ char* _tmp3_ = NULL;
+ gboolean _tmp4_;
+ char* _tmp5_;
+ char* _tmp6_ = NULL;
+ gboolean _tmp7_;
+ char* _tmp8_;
+ gboolean _tmp9_;
+ nai_out = NULL;
+ password_out = NULL;
+ certificate_out = NULL;
+ conn = dbus_g_bus_get (DBUS_BUS_SESSION, &_inner_error_);
+ if (_inner_error_ != NULL) {
+ _g_free0 (certificate_out);
+ _g_free0 (password_out);
+ _g_free0 (nai_out);
+ if (_inner_error_->domain == DBUS_GERROR) {
+ goto __catch0_dbus_gerror;
+ }
+ _g_free0 (certificate_out);
+ _g_free0 (password_out);
+ _g_free0 (nai_out);
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return;
+ }
+ demo = moonshot_dbus_proxy_new (conn, "org.janet.Moonshot", "/org/janet/moonshot");
+ _tmp9_ = (_tmp7_ = (_tmp4_ = (_tmp1_ = moonshot_get_identity (demo, "username@issuer", "pass", "service", &_tmp0_, &_tmp3_, &_tmp6_, &_inner_error_), nai_out = (_tmp2_ = _tmp0_, _g_free0 (nai_out), _tmp2_), _tmp1_), password_out = (_tmp5_ = _tmp3_, _g_free0 (password_out), _tmp5_), _tmp4_), certificate_out = (_tmp8_ = _tmp6_, _g_free0 (certificate_out), _tmp8_), _tmp7_);
+ if (_inner_error_ != NULL) {
+ _g_object_unref0 (demo);
+ _dbus_g_connection_unref0 (conn);
+ _g_free0 (certificate_out);
+ _g_free0 (password_out);
+ _g_free0 (nai_out);
+ if (_inner_error_->domain == DBUS_GERROR) {
+ goto __catch0_dbus_gerror;
+ }
+ _g_object_unref0 (demo);
+ _dbus_g_connection_unref0 (conn);
+ _g_free0 (certificate_out);
+ _g_free0 (password_out);
+ _g_free0 (nai_out);
+ g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return;
+ }
+ if (_tmp9_) {
+ fprintf (stdout, "%s %s %s\n", nai_out, password_out, certificate_out);
+ } else {
+ fprintf (stdout, "The nai, password or service doesnt match the selected id_card\n");
+ }
+ _g_object_unref0 (demo);
+ _dbus_g_connection_unref0 (conn);
+ _g_free0 (certificate_out);
+ _g_free0 (password_out);
+ _g_free0 (nai_out);
+ }
+ goto __finally0;
+ __catch0_dbus_gerror:
+ {
+ GError * e;
+ e = _inner_error_;
+ _inner_error_ = NULL;
+ {
+ fprintf (stderr, "%s\n", e->message);
+ _g_error_free0 (e);
+ }
+ }
+ __finally0:
+ if (_inner_error_ != NULL) {
+ g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
+ g_clear_error (&_inner_error_);
+ return;
+ }
+}
+
+
+int main (int argc, char ** argv) {
+ g_type_init ();
+ _vala_main ();
+ return 0;
+}
+
+
+
+