1 /* moonshot-identities-manager.c generated by valac 0.10.4, the Vala compiler
2 * generated from moonshot-identities-manager.vala, do not modify */
6 #include <glib-object.h>
10 #include <glib/gstdio.h>
12 #include <gdk-pixbuf/gdk-pixdata.h>
15 #define TYPE_IDENTITIES_MANAGER (identities_manager_get_type ())
16 #define IDENTITIES_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITIES_MANAGER, IdentitiesManager))
17 #define IDENTITIES_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITIES_MANAGER, IdentitiesManagerClass))
18 #define IS_IDENTITIES_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITIES_MANAGER))
19 #define IS_IDENTITIES_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITIES_MANAGER))
20 #define IDENTITIES_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITIES_MANAGER, IdentitiesManagerClass))
22 typedef struct _IdentitiesManager IdentitiesManager;
23 typedef struct _IdentitiesManagerClass IdentitiesManagerClass;
24 typedef struct _IdentitiesManagerPrivate IdentitiesManagerPrivate;
26 #define TYPE_ID_CARD (id_card_get_type ())
27 #define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
28 #define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
29 #define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
30 #define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
31 #define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
33 typedef struct _IdCard IdCard;
34 typedef struct _IdCardClass IdCardClass;
35 #define __g_slist_free_g_object_unref0(var) ((var == NULL) ? NULL : (var = (_g_slist_free_g_object_unref (var), NULL)))
36 #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
37 #define _g_free0(var) (var = (g_free (var), NULL))
38 #define _g_key_file_free0(var) ((var == NULL) ? NULL : (var = (g_key_file_free (var), NULL)))
39 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
41 struct _IdentitiesManager {
42 GObject parent_instance;
43 IdentitiesManagerPrivate * priv;
47 struct _IdentitiesManagerClass {
48 GObjectClass parent_class;
52 static gpointer identities_manager_parent_class = NULL;
54 GType identities_manager_get_type (void) G_GNUC_CONST;
55 GType id_card_get_type (void) G_GNUC_CONST;
57 IDENTITIES_MANAGER_DUMMY_PROPERTY
59 static void _g_slist_free_g_object_unref (GSList* self);
60 #define IDENTITIES_MANAGER_FILE_NAME "identities.txt"
61 IdentitiesManager* identities_manager_new (void);
62 IdentitiesManager* identities_manager_construct (GType object_type);
63 static char* identities_manager_get_data_dir (IdentitiesManager* self);
64 IdCard* id_card_new (void);
65 IdCard* id_card_construct (GType object_type);
66 void id_card_set_issuer (IdCard* self, const char* value);
67 void id_card_set_username (IdCard* self, const char* value);
68 void id_card_set_password (IdCard* self, const char* value);
69 void id_card_set_services (IdCard* self, char** value, int value_length1);
70 const char* id_card_get_username (IdCard* self);
71 const char* id_card_get_issuer (IdCard* self);
72 void id_card_set_nai (IdCard* self, const char* value);
73 void identities_manager_store_id_cards (IdentitiesManager* self);
74 const char* id_card_get_password (IdCard* self);
75 char** id_card_get_services (IdCard* self, int* result_length1);
76 IdCard* identities_manager_load_gss_eap_id_file (IdentitiesManager* self);
77 GdkPixbuf* find_icon (const char* name, gint size);
78 void id_card_set_pixbuf (IdCard* self, GdkPixbuf* value);
79 void identities_manager_store_gss_eap_id_file (IdentitiesManager* self, IdCard* id_card);
80 static void identities_manager_finalize (GObject* obj);
81 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
82 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
83 static gint _vala_array_length (gpointer array);
84 static int _vala_strcmp0 (const char * str1, const char * str2);
88 static void _g_slist_free_g_object_unref (GSList* self) {
89 g_slist_foreach (self, (GFunc) g_object_unref, NULL);
94 static gpointer _g_object_ref0 (gpointer self) {
95 return self ? g_object_ref (self) : NULL;
99 IdentitiesManager* identities_manager_construct (GType object_type) {
100 IdentitiesManager * self = NULL;
104 gint identities_uris_length1;
105 gint _identities_uris_size_;
108 char** identities_uris;
109 GError * _inner_error_ = NULL;
110 self = (IdentitiesManager*) g_object_new (object_type, NULL);
111 key_file = g_key_file_new ();
112 path = identities_manager_get_data_dir (self);
113 filename = g_build_filename (path, IDENTITIES_MANAGER_FILE_NAME, NULL);
115 g_key_file_load_from_file (key_file, filename, G_KEY_FILE_NONE, &_inner_error_);
116 if (_inner_error_ != NULL) {
117 goto __catch0_g_error;
125 _inner_error_ = NULL;
127 fprintf (stdout, "Error: %s\n", e->message);
132 if (_inner_error_ != NULL) {
135 _g_key_file_free0 (key_file);
136 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);
137 g_clear_error (&_inner_error_);
140 identities_uris = (_tmp1_ = g_key_file_get_groups (key_file, &_tmp0_), identities_uris_length1 = _tmp0_, _identities_uris_size_ = identities_uris_length1, _tmp1_);
142 char** identity_collection;
143 int identity_collection_length1;
145 identity_collection = identities_uris;
146 identity_collection_length1 = identities_uris_length1;
147 for (identity_it = 0; identity_it < identities_uris_length1; identity_it = identity_it + 1) {
149 identity = g_strdup (identity_collection[identity_it]);
165 gint _tmp11__length1;
169 id_card = id_card_new ();
170 _tmp2_ = g_key_file_get_string (key_file, identity, "Issuer", &_inner_error_);
171 if (_inner_error_ != NULL) {
172 _g_object_unref0 (id_card);
173 goto __catch1_g_error;
175 id_card_set_issuer (id_card, _tmp3_ = _tmp2_);
177 _tmp4_ = g_key_file_get_string (key_file, identity, "Username", &_inner_error_);
178 if (_inner_error_ != NULL) {
179 _g_object_unref0 (id_card);
180 goto __catch1_g_error;
182 id_card_set_username (id_card, _tmp5_ = _tmp4_);
184 _tmp6_ = g_key_file_get_string (key_file, identity, "Password", &_inner_error_);
185 if (_inner_error_ != NULL) {
186 _g_object_unref0 (id_card);
187 goto __catch1_g_error;
189 id_card_set_password (id_card, _tmp7_ = _tmp6_);
191 _tmp9_ = (_tmp10_ = g_key_file_get_string_list (key_file, identity, "Services", &_tmp8_, &_inner_error_), _tmp9__length1 = _tmp8_, __tmp9__size_ = _tmp9__length1, _tmp10_);
192 if (_inner_error_ != NULL) {
193 _g_object_unref0 (id_card);
194 goto __catch1_g_error;
196 _tmp12_ = (_tmp11_ = _tmp9_, _tmp11__length1 = _tmp9__length1, _tmp11_);
197 id_card_set_services (id_card, _tmp12_, _tmp9__length1);
198 _tmp11_ = (_vala_array_free (_tmp11_, _tmp11__length1, (GDestroyNotify) g_free), NULL);
199 id_card_set_nai (id_card, _tmp14_ = g_strconcat (_tmp13_ = g_strconcat (id_card_get_username (id_card), "@", NULL), id_card_get_issuer (id_card), NULL));
202 self->id_card_list = g_slist_prepend (self->id_card_list, _g_object_ref0 (id_card));
203 _g_object_unref0 (id_card);
210 _inner_error_ = NULL;
212 fprintf (stdout, "Error: %s\n", e->message);
217 if (_inner_error_ != NULL) {
219 identities_uris = (_vala_array_free (identities_uris, identities_uris_length1, (GDestroyNotify) g_free), NULL);
222 _g_key_file_free0 (key_file);
223 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);
224 g_clear_error (&_inner_error_);
231 identities_uris = (_vala_array_free (identities_uris, identities_uris_length1, (GDestroyNotify) g_free), NULL);
234 _g_key_file_free0 (key_file);
239 IdentitiesManager* identities_manager_new (void) {
240 return identities_manager_construct (TYPE_IDENTITIES_MANAGER);
244 void identities_manager_store_id_cards (IdentitiesManager* self) {
247 GError * _inner_error_ = NULL;
248 g_return_if_fail (self != NULL);
249 key_file = g_key_file_new ();
251 GSList* id_card_collection;
253 id_card_collection = self->id_card_list;
254 for (id_card_it = id_card_collection; id_card_it != NULL; id_card_it = id_card_it->next) {
256 id_card = _g_object_ref0 ((IdCard*) id_card_it->data);
259 g_key_file_set_string (key_file, id_card_get_issuer (id_card), "Issuer", id_card_get_issuer (id_card));
260 g_key_file_set_string (key_file, id_card_get_issuer (id_card), "Username", id_card_get_username (id_card));
261 g_key_file_set_string (key_file, id_card_get_issuer (id_card), "Password", id_card_get_password (id_card));
262 g_key_file_set_string_list (key_file, id_card_get_issuer (id_card), "Services", (const gchar* const*) id_card_get_services (id_card, &_tmp0_), _tmp0_);
263 _g_object_unref0 (id_card);
267 text = g_key_file_to_data (key_file, NULL, NULL);
271 path = identities_manager_get_data_dir (self);
272 filename = g_build_filename (path, IDENTITIES_MANAGER_FILE_NAME, NULL);
273 g_file_set_contents (filename, text, (gssize) (-1), &_inner_error_);
274 if (_inner_error_ != NULL) {
277 goto __catch2_g_error;
287 _inner_error_ = NULL;
289 fprintf (stdout, "Error: %s\n", e->message);
294 if (_inner_error_ != NULL) {
296 _g_key_file_free0 (key_file);
297 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);
298 g_clear_error (&_inner_error_);
302 _g_key_file_free0 (key_file);
306 static char* identities_manager_get_data_dir (IdentitiesManager* self) {
310 g_return_val_if_fail (self != NULL, NULL);
312 path = (_tmp0_ = g_build_filename (g_get_user_data_dir (), PACKAGE_TARNAME, NULL), _g_free0 (path), _tmp0_);
313 if (!g_file_test (path, G_FILE_TEST_EXISTS)) {
314 g_mkdir (path, 0700);
321 IdCard* identities_manager_load_gss_eap_id_file (IdentitiesManager* self) {
322 IdCard* result = NULL;
325 char* id_card_data[2] = {0};
329 char** _tmp4_ = NULL;
336 GError * _inner_error_ = NULL;
337 g_return_val_if_fail (self != NULL, NULL);
338 id_card = id_card_new ();
340 filename = g_build_filename (g_get_home_dir (), ".gss_eap_id", NULL);
344 g_file_get_contents (filename, &_tmp0_, NULL, &_inner_error_);
345 text = (_tmp1_ = _tmp0_, _g_free0 (text), _tmp1_);
346 if (_inner_error_ != NULL) {
347 goto __catch3_g_error;
355 _inner_error_ = NULL;
360 _vala_array_destroy (id_card_data, 2, (GDestroyNotify) g_free);
362 _g_object_unref0 (id_card);
367 if (_inner_error_ != NULL) {
369 _vala_array_destroy (id_card_data, 2, (GDestroyNotify) g_free);
371 _g_object_unref0 (id_card);
372 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);
373 g_clear_error (&_inner_error_);
376 if (_vala_strcmp0 (text, "") == 0) {
379 _vala_array_destroy (id_card_data, 2, (GDestroyNotify) g_free);
381 _g_object_unref0 (id_card);
384 memcpy (id_card_data, _tmp2_ = g_strsplit (text, "\n", 2), 2 * sizeof (char*));
385 if (_vala_strcmp0 (id_card_data[1], "") != 0) {
386 id_card_set_password (id_card, id_card_data[1]);
388 memcpy (id_card_data, _tmp3_ = g_strsplit (id_card_data[0], "@", 2), 2 * sizeof (char*));
389 id_card_set_username (id_card, id_card_data[0]);
390 id_card_set_issuer (id_card, id_card_data[1]);
391 _tmp6_ = (_tmp5_ = (_tmp4_ = g_new0 (char*, 3 + 1), _tmp4_[0] = g_strdup ("email"), _tmp4_[1] = g_strdup ("jabber"), _tmp4_[2] = g_strdup ("irc"), _tmp4_), _tmp5__length1 = 3, _tmp5_);
392 id_card_set_services (id_card, _tmp6_, 3);
393 _tmp5_ = (_vala_array_free (_tmp5_, _tmp5__length1, (GDestroyNotify) g_free), NULL);
394 id_card_set_nai (id_card, _tmp8_ = g_strconcat (_tmp7_ = g_strconcat (id_card_get_username (id_card), "@", NULL), id_card_get_issuer (id_card), NULL));
397 id_card_set_pixbuf (id_card, _tmp9_ = find_icon ("avatar-default", 48));
398 _g_object_unref0 (_tmp9_);
401 _vala_array_destroy (id_card_data, 2, (GDestroyNotify) g_free);
407 void identities_manager_store_gss_eap_id_file (IdentitiesManager* self, IdCard* id_card) {
410 GError * _inner_error_ = NULL;
411 g_return_if_fail (self != NULL);
412 text = g_strdup ("");
413 if (id_card != NULL) {
418 text = (_tmp3_ = g_strconcat (_tmp2_ = g_strconcat (_tmp1_ = g_strconcat (_tmp0_ = g_strconcat (id_card_get_username (id_card), "@", NULL), id_card_get_issuer (id_card), NULL), "\n", NULL), id_card_get_password (id_card), NULL), _g_free0 (text), _tmp3_);
423 filename = g_build_filename (g_get_home_dir (), ".gss_eap_id", NULL);
425 g_file_set_contents (filename, text, (gssize) (-1), &_inner_error_);
426 if (_inner_error_ != NULL) {
427 goto __catch4_g_error;
435 _inner_error_ = NULL;
437 fprintf (stdout, "Error: %s\n", e->message);
442 if (_inner_error_ != NULL) {
445 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);
446 g_clear_error (&_inner_error_);
454 static void identities_manager_class_init (IdentitiesManagerClass * klass) {
455 identities_manager_parent_class = g_type_class_peek_parent (klass);
456 G_OBJECT_CLASS (klass)->finalize = identities_manager_finalize;
460 static void identities_manager_instance_init (IdentitiesManager * self) {
464 static void identities_manager_finalize (GObject* obj) {
465 IdentitiesManager * self;
466 self = IDENTITIES_MANAGER (obj);
467 __g_slist_free_g_object_unref0 (self->id_card_list);
468 G_OBJECT_CLASS (identities_manager_parent_class)->finalize (obj);
472 GType identities_manager_get_type (void) {
473 static volatile gsize identities_manager_type_id__volatile = 0;
474 if (g_once_init_enter (&identities_manager_type_id__volatile)) {
475 static const GTypeInfo g_define_type_info = { sizeof (IdentitiesManagerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) identities_manager_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (IdentitiesManager), 0, (GInstanceInitFunc) identities_manager_instance_init, NULL };
476 GType identities_manager_type_id;
477 identities_manager_type_id = g_type_register_static (G_TYPE_OBJECT, "IdentitiesManager", &g_define_type_info, 0);
478 g_once_init_leave (&identities_manager_type_id__volatile, identities_manager_type_id);
480 return identities_manager_type_id__volatile;
484 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
485 if ((array != NULL) && (destroy_func != NULL)) {
487 for (i = 0; i < array_length; i = i + 1) {
488 if (((gpointer*) array)[i] != NULL) {
489 destroy_func (((gpointer*) array)[i]);
496 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
497 _vala_array_destroy (array, array_length, destroy_func);
502 static gint _vala_array_length (gpointer array) {
506 while (((gpointer*) array)[length]) {
514 static int _vala_strcmp0 (const char * str1, const char * str2) {
516 return -(str1 != str2);
521 return strcmp (str1, str2);