1 /* moonshot-webp-parser.c generated by valac 0.10.4, the Vala compiler
2 * generated from moonshot-webp-parser.vala, do not modify */
6 #include <glib-object.h>
10 #include <glib/gstdio.h>
11 #include <libmoonshot.h>
13 #include <gobject/gvaluecollector.h>
16 #define TYPE_ID_CARD (id_card_get_type ())
17 #define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
18 #define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
19 #define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
20 #define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
21 #define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
23 typedef struct _IdCard IdCard;
24 typedef struct _IdCardClass IdCardClass;
25 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
27 #define TYPE_RULE (rule_get_type ())
28 typedef struct _Rule Rule;
29 #define _g_free0(var) (var = (g_free (var), NULL))
31 #define TYPE_TRUST_ANCHOR (trust_anchor_get_type ())
32 #define TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TRUST_ANCHOR, TrustAnchor))
33 #define TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TRUST_ANCHOR, TrustAnchorClass))
34 #define IS_TRUST_ANCHOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TRUST_ANCHOR))
35 #define IS_TRUST_ANCHOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TRUST_ANCHOR))
36 #define TRUST_ANCHOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TRUST_ANCHOR, TrustAnchorClass))
38 typedef struct _TrustAnchor TrustAnchor;
39 typedef struct _TrustAnchorClass TrustAnchorClass;
41 #define WEB_PROVISIONING_TYPE_PARSER (web_provisioning_parser_get_type ())
42 #define WEB_PROVISIONING_PARSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParser))
43 #define WEB_PROVISIONING_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserClass))
44 #define WEB_PROVISIONING_IS_PARSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WEB_PROVISIONING_TYPE_PARSER))
45 #define WEB_PROVISIONING_IS_PARSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WEB_PROVISIONING_TYPE_PARSER))
46 #define WEB_PROVISIONING_PARSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserClass))
48 typedef struct _WebProvisioningParser WebProvisioningParser;
49 typedef struct _WebProvisioningParserClass WebProvisioningParserClass;
50 typedef struct _WebProvisioningParserPrivate WebProvisioningParserPrivate;
51 #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
52 #define _g_markup_parse_context_free0(var) ((var == NULL) ? NULL : (var = (g_markup_parse_context_free (var), NULL)))
53 typedef struct _WebProvisioningParamSpecParser WebProvisioningParamSpecParser;
54 #define _moonshot_error_free0(var) ((var == NULL) ? NULL : (var = (moonshot_error_free (var), NULL)))
55 #define _web_provisioning_parser_unref0(var) ((var == NULL) ? NULL : (var = (web_provisioning_parser_unref (var), NULL)))
62 struct _WebProvisioningParser {
63 GTypeInstance parent_instance;
64 volatile int ref_count;
65 WebProvisioningParserPrivate * priv;
68 struct _WebProvisioningParserClass {
69 GTypeClass parent_class;
70 void (*finalize) (WebProvisioningParser *self);
73 struct _WebProvisioningParserPrivate {
79 struct _WebProvisioningParamSpecParser {
80 GParamSpec parent_instance;
84 extern IdCard* web_provisioning_card;
85 IdCard* web_provisioning_card = NULL;
86 extern IdCard** web_provisioning_cards;
87 extern gint web_provisioning_cards_length1;
88 IdCard** web_provisioning_cards = NULL;
89 gint web_provisioning_cards_length1 = 0;
90 static gint _web_provisioning_cards_size_ = 0;
91 static gpointer web_provisioning_parser_parent_class = NULL;
93 GType id_card_get_type (void) G_GNUC_CONST;
94 gboolean web_provisioning_check_stack (GSList* stack, char** reference, int reference_length1);
95 gboolean web_provisioning_always_confirm_handler (GSList* stack);
96 gboolean web_provisioning_pattern_handler (GSList* stack);
97 gboolean web_provisioning_server_cert_handler (GSList* stack);
98 gboolean web_provisioning_subject_alt_handler (GSList* stack);
99 gboolean web_provisioning_subject_handler (GSList* stack);
100 gboolean web_provisioning_ca_cert_handler (GSList* stack);
101 gboolean web_provisioning_realm_handler (GSList* stack);
102 gboolean web_provisioning_password_handler (GSList* stack);
103 gboolean web_provisioning_user_handler (GSList* stack);
104 gboolean web_provisioning_display_name_handler (GSList* stack);
105 void web_provisioning_start_element_func (GMarkupParseContext* context, const char* element_name, char** attribute_names, int attribute_names_length1, char** attribute_values, int attribute_values_length1, GError** error);
106 static IdCard** _vala_array_dup1 (IdCard** self, int length);
107 IdCard* id_card_new (void);
108 IdCard* id_card_construct (GType object_type);
109 GType rule_get_type (void) G_GNUC_CONST;
110 Rule* rule_dup (const Rule* self);
111 void rule_free (Rule* self);
112 void rule_copy (const Rule* self, Rule* dest);
113 void rule_destroy (Rule* self);
114 Rule* id_card_get_rules (IdCard* self, int* result_length1);
115 static Rule* _vala_array_dup2 (Rule* self, int length);
116 void id_card_set_rules (IdCard* self, Rule* value, int value_length1);
117 static void _vala_Rule_array_free (Rule* array, gint array_length);
118 void web_provisioning_text_element_func (GMarkupParseContext* context, const char* text, gsize text_len, GError** error);
119 void id_card_set_display_name (IdCard* self, const char* value);
120 void id_card_set_username (IdCard* self, const char* value);
121 void id_card_set_password (IdCard* self, const char* value);
122 void id_card_set_issuer (IdCard* self, const char* value);
123 char** id_card_get_services (IdCard* self, int* result_length1);
124 static char** _vala_array_dup3 (char** self, int length);
125 void id_card_set_services (IdCard* self, char** value, int value_length1);
126 GType trust_anchor_get_type (void) G_GNUC_CONST;
127 TrustAnchor* id_card_get_trust_anchor (IdCard* self);
128 void trust_anchor_set_ca_cert (TrustAnchor* self, const char* value);
129 void trust_anchor_set_subject (TrustAnchor* self, const char* value);
130 void trust_anchor_set_subject_alt (TrustAnchor* self, const char* value);
131 void trust_anchor_set_server_cert (TrustAnchor* self, const char* value);
132 gpointer web_provisioning_parser_ref (gpointer instance);
133 void web_provisioning_parser_unref (gpointer instance);
134 GParamSpec* web_provisioning_param_spec_parser (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
135 void web_provisioning_value_set_parser (GValue* value, gpointer v_object);
136 void web_provisioning_value_take_parser (GValue* value, gpointer v_object);
137 gpointer web_provisioning_value_get_parser (const GValue* value);
138 GType web_provisioning_parser_get_type (void) G_GNUC_CONST;
139 #define WEB_PROVISIONING_PARSER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), WEB_PROVISIONING_TYPE_PARSER, WebProvisioningParserPrivate))
141 WEB_PROVISIONING_PARSER_DUMMY_PROPERTY
143 WebProvisioningParser* web_provisioning_parser_new (const char* path);
144 WebProvisioningParser* web_provisioning_parser_construct (GType object_type, const char* path);
145 static void _web_provisioning_start_element_func_gmarkup_parser_start_element_func (GMarkupParseContext* context, const char* element_name, char** attribute_names, char** attribute_values, gpointer self, GError** error);
146 static void _web_provisioning_text_element_func_gmarkup_parser_text_func (GMarkupParseContext* context, const char* text, gsize text_len, gpointer self, GError** error);
147 void web_provisioning_parser_parse (WebProvisioningParser* self);
148 static void web_provisioning_parser_finalize (WebProvisioningParser* obj);
149 gint web_provisioning_main (char** args, int args_length1);
150 const char* id_card_get_display_name (IdCard* self);
151 const char* id_card_get_username (IdCard* self);
152 const char* id_card_get_password (IdCard* self);
153 const char* id_card_get_issuer (IdCard* self);
154 const char* trust_anchor_get_ca_cert (TrustAnchor* self);
155 const char* trust_anchor_get_subject (TrustAnchor* self);
156 const char* trust_anchor_get_subject_alt (TrustAnchor* self);
157 const char* trust_anchor_get_server_cert (TrustAnchor* self);
158 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
159 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
160 static gint _vala_array_length (gpointer array);
161 static int _vala_strcmp0 (const char * str1, const char * str2);
165 gboolean web_provisioning_check_stack (GSList* stack, char** reference, int reference_length1) {
166 gboolean result = FALSE;
167 if (g_slist_length (stack) < reference_length1) {
182 if (!(i < reference_length1)) {
185 if (_vala_strcmp0 ((const char*) g_slist_nth_data (stack, (guint) i), reference[i]) != 0) {
197 gboolean web_provisioning_always_confirm_handler (GSList* stack) {
198 gboolean result = FALSE;
199 gint always_confirm_path_length1;
200 gint _always_confirm_path_size_;
202 char** _tmp0_ = NULL;
203 char** always_confirm_path;
204 always_confirm_path = (_tmp1_ = (_tmp0_ = g_new0 (char*, 5 + 1), _tmp0_[0] = g_strdup ("always-confirm"), _tmp0_[1] = g_strdup ("rule"), _tmp0_[2] = g_strdup ("selection-rules"), _tmp0_[3] = g_strdup ("identity"), _tmp0_[4] = g_strdup ("identities"), _tmp0_), always_confirm_path_length1 = 5, _always_confirm_path_size_ = always_confirm_path_length1, _tmp1_);
205 result = web_provisioning_check_stack (stack, always_confirm_path, always_confirm_path_length1);
206 always_confirm_path = (_vala_array_free (always_confirm_path, always_confirm_path_length1, (GDestroyNotify) g_free), NULL);
211 gboolean web_provisioning_pattern_handler (GSList* stack) {
212 gboolean result = FALSE;
213 gint pattern_path_length1;
214 gint _pattern_path_size_;
216 char** _tmp0_ = NULL;
218 pattern_path = (_tmp1_ = (_tmp0_ = g_new0 (char*, 5 + 1), _tmp0_[0] = g_strdup ("pattern"), _tmp0_[1] = g_strdup ("rule"), _tmp0_[2] = g_strdup ("selection-rules"), _tmp0_[3] = g_strdup ("identity"), _tmp0_[4] = g_strdup ("identities"), _tmp0_), pattern_path_length1 = 5, _pattern_path_size_ = pattern_path_length1, _tmp1_);
219 result = web_provisioning_check_stack (stack, pattern_path, pattern_path_length1);
220 pattern_path = (_vala_array_free (pattern_path, pattern_path_length1, (GDestroyNotify) g_free), NULL);
225 gboolean web_provisioning_server_cert_handler (GSList* stack) {
226 gboolean result = FALSE;
227 gint server_cert_path_length1;
228 gint _server_cert_path_size_;
230 char** _tmp0_ = NULL;
231 char** server_cert_path;
232 server_cert_path = (_tmp1_ = (_tmp0_ = g_new0 (char*, 4 + 1), _tmp0_[0] = g_strdup ("server-cert"), _tmp0_[1] = g_strdup ("trust-anchor"), _tmp0_[2] = g_strdup ("identity"), _tmp0_[3] = g_strdup ("identities"), _tmp0_), server_cert_path_length1 = 4, _server_cert_path_size_ = server_cert_path_length1, _tmp1_);
233 result = web_provisioning_check_stack (stack, server_cert_path, server_cert_path_length1);
234 server_cert_path = (_vala_array_free (server_cert_path, server_cert_path_length1, (GDestroyNotify) g_free), NULL);
239 gboolean web_provisioning_subject_alt_handler (GSList* stack) {
240 gboolean result = FALSE;
241 gint subject_alt_path_length1;
242 gint _subject_alt_path_size_;
244 char** _tmp0_ = NULL;
245 char** subject_alt_path;
246 subject_alt_path = (_tmp1_ = (_tmp0_ = g_new0 (char*, 4 + 1), _tmp0_[0] = g_strdup ("subject-alt"), _tmp0_[1] = g_strdup ("trust-anchor"), _tmp0_[2] = g_strdup ("identity"), _tmp0_[3] = g_strdup ("identities"), _tmp0_), subject_alt_path_length1 = 4, _subject_alt_path_size_ = subject_alt_path_length1, _tmp1_);
247 result = web_provisioning_check_stack (stack, subject_alt_path, subject_alt_path_length1);
248 subject_alt_path = (_vala_array_free (subject_alt_path, subject_alt_path_length1, (GDestroyNotify) g_free), NULL);
253 gboolean web_provisioning_subject_handler (GSList* stack) {
254 gboolean result = FALSE;
255 gint subject_path_length1;
256 gint _subject_path_size_;
258 char** _tmp0_ = NULL;
260 subject_path = (_tmp1_ = (_tmp0_ = g_new0 (char*, 4 + 1), _tmp0_[0] = g_strdup ("subject"), _tmp0_[1] = g_strdup ("trust-anchor"), _tmp0_[2] = g_strdup ("identity"), _tmp0_[3] = g_strdup ("identities"), _tmp0_), subject_path_length1 = 4, _subject_path_size_ = subject_path_length1, _tmp1_);
261 result = web_provisioning_check_stack (stack, subject_path, subject_path_length1);
262 subject_path = (_vala_array_free (subject_path, subject_path_length1, (GDestroyNotify) g_free), NULL);
267 gboolean web_provisioning_ca_cert_handler (GSList* stack) {
268 gboolean result = FALSE;
269 gint ca_path_length1;
272 char** _tmp0_ = NULL;
274 ca_path = (_tmp1_ = (_tmp0_ = g_new0 (char*, 4 + 1), _tmp0_[0] = g_strdup ("ca-cert"), _tmp0_[1] = g_strdup ("trust-anchor"), _tmp0_[2] = g_strdup ("identity"), _tmp0_[3] = g_strdup ("identities"), _tmp0_), ca_path_length1 = 4, _ca_path_size_ = ca_path_length1, _tmp1_);
275 result = web_provisioning_check_stack (stack, ca_path, ca_path_length1);
276 ca_path = (_vala_array_free (ca_path, ca_path_length1, (GDestroyNotify) g_free), NULL);
281 gboolean web_provisioning_realm_handler (GSList* stack) {
282 gboolean result = FALSE;
283 gint realm_path_length1;
284 gint _realm_path_size_;
286 char** _tmp0_ = NULL;
288 realm_path = (_tmp1_ = (_tmp0_ = g_new0 (char*, 3 + 1), _tmp0_[0] = g_strdup ("realm"), _tmp0_[1] = g_strdup ("identity"), _tmp0_[2] = g_strdup ("identities"), _tmp0_), realm_path_length1 = 3, _realm_path_size_ = realm_path_length1, _tmp1_);
289 result = web_provisioning_check_stack (stack, realm_path, realm_path_length1);
290 realm_path = (_vala_array_free (realm_path, realm_path_length1, (GDestroyNotify) g_free), NULL);
295 gboolean web_provisioning_password_handler (GSList* stack) {
296 gboolean result = FALSE;
297 gint password_path_length1;
298 gint _password_path_size_;
300 char** _tmp0_ = NULL;
301 char** password_path;
302 password_path = (_tmp1_ = (_tmp0_ = g_new0 (char*, 3 + 1), _tmp0_[0] = g_strdup ("password"), _tmp0_[1] = g_strdup ("identity"), _tmp0_[2] = g_strdup ("identities"), _tmp0_), password_path_length1 = 3, _password_path_size_ = password_path_length1, _tmp1_);
303 result = web_provisioning_check_stack (stack, password_path, password_path_length1);
304 password_path = (_vala_array_free (password_path, password_path_length1, (GDestroyNotify) g_free), NULL);
309 gboolean web_provisioning_user_handler (GSList* stack) {
310 gboolean result = FALSE;
311 gint user_path_length1;
312 gint _user_path_size_;
314 char** _tmp0_ = NULL;
316 user_path = (_tmp1_ = (_tmp0_ = g_new0 (char*, 3 + 1), _tmp0_[0] = g_strdup ("user"), _tmp0_[1] = g_strdup ("identity"), _tmp0_[2] = g_strdup ("identities"), _tmp0_), user_path_length1 = 3, _user_path_size_ = user_path_length1, _tmp1_);
317 result = web_provisioning_check_stack (stack, user_path, user_path_length1);
318 user_path = (_vala_array_free (user_path, user_path_length1, (GDestroyNotify) g_free), NULL);
323 gboolean web_provisioning_display_name_handler (GSList* stack) {
324 gboolean result = FALSE;
325 gint display_name_path_length1;
326 gint _display_name_path_size_;
328 char** _tmp0_ = NULL;
329 char** display_name_path;
330 display_name_path = (_tmp1_ = (_tmp0_ = g_new0 (char*, 3 + 1), _tmp0_[0] = g_strdup ("display-name"), _tmp0_[1] = g_strdup ("identity"), _tmp0_[2] = g_strdup ("identities"), _tmp0_), display_name_path_length1 = 3, _display_name_path_size_ = display_name_path_length1, _tmp1_);
331 result = web_provisioning_check_stack (stack, display_name_path, display_name_path_length1);
332 display_name_path = (_vala_array_free (display_name_path, display_name_path_length1, (GDestroyNotify) g_free), NULL);
337 static gpointer _g_object_ref0 (gpointer self) {
338 return self ? g_object_ref (self) : NULL;
342 static IdCard** _vala_array_dup1 (IdCard** self, int length) {
345 result = g_new0 (IdCard*, length + 1);
346 for (i = 0; i < length; i++) {
347 result[i] = _g_object_ref0 (self[i]);
353 static Rule* _vala_array_dup2 (Rule* self, int length) {
357 result = g_new0 (Rule, length);
358 for (i = 0; i < length; i++) {
359 result[i] = (rule_copy (&self[i], &_tmp0_), _tmp0_);
365 static void _vala_Rule_array_free (Rule* array, gint array_length) {
368 for (i = 0; i < array_length; i = i + 1) {
369 rule_destroy (&array[i]);
376 void web_provisioning_start_element_func (GMarkupParseContext* context, const char* element_name, char** attribute_names, int attribute_names_length1, char** attribute_values, int attribute_values_length1, GError** error) {
377 g_return_if_fail (context != NULL);
378 g_return_if_fail (element_name != NULL);
379 if (_vala_strcmp0 (element_name, "identity") == 0) {
380 gint tmp_cards_length1;
381 gint _tmp_cards_size_;
388 tmp_cards = (_tmp1_ = (_tmp0_ = web_provisioning_cards, (_tmp0_ == NULL) ? ((gpointer) _tmp0_) : _vala_array_dup1 (_tmp0_, web_provisioning_cards_length1)), tmp_cards_length1 = web_provisioning_cards_length1, _tmp_cards_size_ = tmp_cards_length1, _tmp1_);
389 web_provisioning_cards = (_tmp2_ = g_new0 (IdCard*, (tmp_cards_length1 + 1) + 1), web_provisioning_cards = (_vala_array_free (web_provisioning_cards, web_provisioning_cards_length1, (GDestroyNotify) g_object_unref), NULL), web_provisioning_cards_length1 = tmp_cards_length1 + 1, _web_provisioning_cards_size_ = web_provisioning_cards_length1, _tmp2_);
402 if (!(i < tmp_cards_length1)) {
405 web_provisioning_cards[i] = (_tmp4_ = _g_object_ref0 (tmp_cards[i]), _g_object_unref0 (web_provisioning_cards[i]), _tmp4_);
409 web_provisioning_card = (_tmp5_ = id_card_new (), _g_object_unref0 (web_provisioning_card), _tmp5_);
410 web_provisioning_cards[tmp_cards_length1] = (_tmp6_ = _g_object_ref0 (web_provisioning_card), _g_object_unref0 (web_provisioning_cards[tmp_cards_length1]), _tmp6_);
411 tmp_cards = (_vala_array_free (tmp_cards, tmp_cards_length1, (GDestroyNotify) g_object_unref), NULL);
413 if (_vala_strcmp0 (element_name, "rule") == 0) {
414 gint tmp_rules_length1;
415 gint _tmp_rules_size_;
421 gint _tmp10__length1;
428 tmp_rules = (_tmp9_ = (_tmp8_ = id_card_get_rules (web_provisioning_card, &_tmp7_), (_tmp8_ == NULL) ? ((gpointer) _tmp8_) : _vala_array_dup2 (_tmp8_, _tmp7_)), tmp_rules_length1 = _tmp7_, _tmp_rules_size_ = tmp_rules_length1, _tmp9_);
429 _tmp11_ = (_tmp10_ = g_new0 (Rule, tmp_rules_length1 + 1), _tmp10__length1 = tmp_rules_length1 + 1, _tmp10_);
430 id_card_set_rules (web_provisioning_card, _tmp11_, tmp_rules_length1 + 1);
431 _tmp10_ = (_vala_Rule_array_free (_tmp10_, _tmp10__length1), NULL);
448 if (!(i < tmp_rules_length1)) {
451 _tmp16_ = &id_card_get_rules (web_provisioning_card, &_tmp15_)[i];
452 (*_tmp16_) = (_tmp17_ = (rule_copy (&tmp_rules[i], &_tmp14_), _tmp14_), rule_destroy (&(*_tmp16_)), _tmp17_);
456 _tmp21_ = &id_card_get_rules (web_provisioning_card, &_tmp20_)[tmp_rules_length1];
457 (*_tmp21_) = (_tmp22_ = (memset (&_tmp19_, 0, sizeof (Rule)), _tmp19_), rule_destroy (&(*_tmp21_)), _tmp22_);
458 tmp_rules = (_vala_Rule_array_free (tmp_rules, tmp_rules_length1), NULL);
464 static char** _vala_array_dup3 (char** self, int length) {
467 result = g_new0 (char*, length + 1);
468 for (i = 0; i < length; i++) {
469 result[i] = g_strdup (self[i]);
475 void web_provisioning_text_element_func (GMarkupParseContext* context, const char* text, gsize text_len, GError** error) {
477 gboolean _tmp0_ = FALSE;
478 g_return_if_fail (context != NULL);
479 g_return_if_fail (text != NULL);
480 stack = g_markup_parse_context_get_element_stack (context);
484 if (_vala_strcmp0 ((const char*) g_slist_nth_data (stack, (guint) 0), "display-name") == 0) {
485 _tmp0_ = web_provisioning_display_name_handler (stack);
490 id_card_set_display_name (web_provisioning_card, text);
492 gboolean _tmp1_ = FALSE;
493 if (_vala_strcmp0 ((const char*) g_slist_nth_data (stack, (guint) 0), "user") == 0) {
494 _tmp1_ = web_provisioning_user_handler (stack);
499 id_card_set_username (web_provisioning_card, text);
501 gboolean _tmp2_ = FALSE;
502 if (_vala_strcmp0 ((const char*) g_slist_nth_data (stack, (guint) 0), "password") == 0) {
503 _tmp2_ = web_provisioning_password_handler (stack);
508 id_card_set_password (web_provisioning_card, text);
510 gboolean _tmp3_ = FALSE;
511 if (_vala_strcmp0 ((const char*) g_slist_nth_data (stack, (guint) 0), "realm") == 0) {
512 _tmp3_ = web_provisioning_realm_handler (stack);
517 id_card_set_issuer (web_provisioning_card, text);
519 if (_vala_strcmp0 ((const char*) g_slist_nth_data (stack, (guint) 0), "service") == 0) {
520 gint services_length1;
521 gint _services_size_;
533 services = (_tmp6_ = (_tmp5_ = id_card_get_services (web_provisioning_card, &_tmp4_), (_tmp5_ == NULL) ? ((gpointer) _tmp5_) : _vala_array_dup3 (_tmp5_, _tmp4_)), services_length1 = _tmp4_, _services_size_ = services_length1, _tmp6_);
534 _tmp8_ = (_tmp7_ = g_new0 (char*, (services_length1 + 1) + 1), _tmp7__length1 = services_length1 + 1, _tmp7_);
535 id_card_set_services (web_provisioning_card, _tmp8_, services_length1 + 1);
536 _tmp7_ = (_vala_array_free (_tmp7_, _tmp7__length1, (GDestroyNotify) g_free), NULL);
552 if (!(i < services_length1)) {
555 _tmp12_ = &id_card_get_services (web_provisioning_card, &_tmp11_)[i];
556 (*_tmp12_) = (_tmp13_ = g_strdup (services[i]), _g_free0 ((*_tmp12_)), _tmp13_);
560 _tmp16_ = &id_card_get_services (web_provisioning_card, &_tmp15_)[services_length1];
561 (*_tmp16_) = (_tmp17_ = g_strdup (text), _g_free0 ((*_tmp16_)), _tmp17_);
562 services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_free), NULL);
564 gboolean _tmp18_ = FALSE;
565 if (_vala_strcmp0 ((const char*) g_slist_nth_data (stack, (guint) 0), "pattern") == 0) {
566 _tmp18_ = web_provisioning_pattern_handler (stack);
575 _tmp21_ = &id_card_get_rules (web_provisioning_card, &_tmp19_)[_tmp20_ - 1].pattern;
576 (*_tmp21_) = (_tmp22_ = g_strdup (text), _g_free0 ((*_tmp21_)), _tmp22_);
578 gboolean _tmp23_ = FALSE;
579 if (_vala_strcmp0 ((const char*) g_slist_nth_data (stack, (guint) 0), "always-confirm") == 0) {
580 _tmp23_ = web_provisioning_always_confirm_handler (stack);
585 gboolean _tmp24_ = FALSE;
586 if (_vala_strcmp0 (text, "true") == 0) {
589 _tmp24_ = _vala_strcmp0 (text, "false") == 0;
596 _tmp27_ = &id_card_get_rules (web_provisioning_card, &_tmp25_)[_tmp26_ - 1].always_confirm;
597 (*_tmp27_) = (_tmp28_ = g_strdup (text), _g_free0 ((*_tmp27_)), _tmp28_);
600 gboolean _tmp29_ = FALSE;
601 if (_vala_strcmp0 ((const char*) g_slist_nth_data (stack, (guint) 0), "ca-cert") == 0) {
602 _tmp29_ = web_provisioning_ca_cert_handler (stack);
607 trust_anchor_set_ca_cert (id_card_get_trust_anchor (web_provisioning_card), text);
609 gboolean _tmp30_ = FALSE;
610 if (_vala_strcmp0 ((const char*) g_slist_nth_data (stack, (guint) 0), "subject") == 0) {
611 _tmp30_ = web_provisioning_subject_handler (stack);
616 trust_anchor_set_subject (id_card_get_trust_anchor (web_provisioning_card), text);
618 gboolean _tmp31_ = FALSE;
619 if (_vala_strcmp0 ((const char*) g_slist_nth_data (stack, (guint) 0), "subject-alt") == 0) {
620 _tmp31_ = web_provisioning_subject_alt_handler (stack);
625 trust_anchor_set_subject_alt (id_card_get_trust_anchor (web_provisioning_card), text);
627 gboolean _tmp32_ = FALSE;
628 if (_vala_strcmp0 ((const char*) g_slist_nth_data (stack, (guint) 0), "server-cert") == 0) {
629 _tmp32_ = web_provisioning_server_cert_handler (stack);
634 trust_anchor_set_server_cert (id_card_get_trust_anchor (web_provisioning_card), text);
649 static void _web_provisioning_start_element_func_gmarkup_parser_start_element_func (GMarkupParseContext* context, const char* element_name, char** attribute_names, char** attribute_values, gpointer self, GError** error) {
650 web_provisioning_start_element_func (context, element_name, attribute_names, _vala_array_length (attribute_names), attribute_values, _vala_array_length (attribute_values), error);
654 static void _web_provisioning_text_element_func_gmarkup_parser_text_func (GMarkupParseContext* context, const char* text, gsize text_len, gpointer self, GError** error) {
655 web_provisioning_text_element_func (context, text, text_len, error);
659 WebProvisioningParser* web_provisioning_parser_construct (GType object_type, const char* path) {
660 WebProvisioningParser* self = (WebProvisioningParser*) g_type_create_instance (object_type);
664 GMarkupParser _tmp8_ = {0};
665 GError * _inner_error_ = NULL;
666 g_return_val_if_fail (path != NULL, NULL);
667 self->priv->text = (_tmp0_ = g_strdup (""), _g_free0 (self->priv->text), _tmp0_);
668 self->priv->path = (_tmp1_ = g_strdup (path), _g_free0 (self->priv->path), _tmp1_);
669 file = g_file_new_for_path (path);
671 GFileInputStream* _tmp2_;
672 GFileInputStream* _tmp3_;
673 GDataInputStream* _tmp4_;
674 GDataInputStream* dis;
676 _tmp2_ = g_file_read (file, NULL, &_inner_error_);
677 if (_inner_error_ != NULL) {
678 goto __catch0_g_error;
680 dis = (_tmp4_ = g_data_input_stream_new ((GInputStream*) (_tmp3_ = _tmp2_)), _g_object_unref0 (_tmp3_), _tmp4_);
686 _tmp5_ = g_data_input_stream_read_line (dis, NULL, NULL, &_inner_error_);
687 if (_inner_error_ != NULL) {
689 _g_object_unref0 (dis);
690 goto __catch0_g_error;
692 if (!((line = (_tmp6_ = _tmp5_, _g_free0 (line), _tmp6_)) != NULL)) {
695 self->priv->text = (_tmp7_ = g_strconcat (self->priv->text, line, NULL), _g_free0 (self->priv->text), _tmp7_);
698 _g_object_unref0 (dis);
705 _inner_error_ = NULL;
707 g_error ("moonshot-webp-parser.vala:220: Could not retreive file size");
712 if (_inner_error_ != NULL) {
713 _g_object_unref0 (file);
714 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);
715 g_clear_error (&_inner_error_);
718 self->priv->parser = (_tmp8_.start_element = _web_provisioning_start_element_func_gmarkup_parser_start_element_func, _tmp8_.end_element = NULL, _tmp8_.text = _web_provisioning_text_element_func_gmarkup_parser_text_func, _tmp8_.passthrough = NULL, _tmp8_.error = NULL, _tmp8_);
719 _g_object_unref0 (file);
724 WebProvisioningParser* web_provisioning_parser_new (const char* path) {
725 return web_provisioning_parser_construct (WEB_PROVISIONING_TYPE_PARSER, path);
729 static glong string_get_length (const char* self) {
731 g_return_val_if_fail (self != NULL, 0L);
732 result = g_utf8_strlen (self, (gssize) (-1));
737 void web_provisioning_parser_parse (WebProvisioningParser* self) {
738 GMarkupParseContext* ctx;
739 GError * _inner_error_ = NULL;
740 g_return_if_fail (self != NULL);
741 ctx = g_markup_parse_context_new (&self->priv->parser, 0, NULL, NULL);
743 g_markup_parse_context_parse (ctx, self->priv->text, (gssize) string_get_length (self->priv->text), &_inner_error_);
744 if (_inner_error_ != NULL) {
745 goto __catch1_g_error;
753 _inner_error_ = NULL;
755 g_error ("moonshot-webp-parser.vala:237: Could not parse %s, invalid content", self->priv->path);
760 if (_inner_error_ != NULL) {
761 _g_markup_parse_context_free0 (ctx);
762 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);
763 g_clear_error (&_inner_error_);
766 _g_markup_parse_context_free0 (ctx);
770 static void web_provisioning_value_parser_init (GValue* value) {
771 value->data[0].v_pointer = NULL;
775 static void web_provisioning_value_parser_free_value (GValue* value) {
776 if (value->data[0].v_pointer) {
777 web_provisioning_parser_unref (value->data[0].v_pointer);
782 static void web_provisioning_value_parser_copy_value (const GValue* src_value, GValue* dest_value) {
783 if (src_value->data[0].v_pointer) {
784 dest_value->data[0].v_pointer = web_provisioning_parser_ref (src_value->data[0].v_pointer);
786 dest_value->data[0].v_pointer = NULL;
791 static gpointer web_provisioning_value_parser_peek_pointer (const GValue* value) {
792 return value->data[0].v_pointer;
796 static gchar* web_provisioning_value_parser_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
797 if (collect_values[0].v_pointer) {
798 WebProvisioningParser* object;
799 object = collect_values[0].v_pointer;
800 if (object->parent_instance.g_class == NULL) {
801 return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
802 } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
803 return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
805 value->data[0].v_pointer = web_provisioning_parser_ref (object);
807 value->data[0].v_pointer = NULL;
813 static gchar* web_provisioning_value_parser_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
814 WebProvisioningParser** object_p;
815 object_p = collect_values[0].v_pointer;
817 return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
819 if (!value->data[0].v_pointer) {
821 } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
822 *object_p = value->data[0].v_pointer;
824 *object_p = web_provisioning_parser_ref (value->data[0].v_pointer);
830 GParamSpec* web_provisioning_param_spec_parser (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
831 WebProvisioningParamSpecParser* spec;
832 g_return_val_if_fail (g_type_is_a (object_type, WEB_PROVISIONING_TYPE_PARSER), NULL);
833 spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
834 G_PARAM_SPEC (spec)->value_type = object_type;
835 return G_PARAM_SPEC (spec);
839 gpointer web_provisioning_value_get_parser (const GValue* value) {
840 g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, WEB_PROVISIONING_TYPE_PARSER), NULL);
841 return value->data[0].v_pointer;
845 void web_provisioning_value_set_parser (GValue* value, gpointer v_object) {
846 WebProvisioningParser* old;
847 g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, WEB_PROVISIONING_TYPE_PARSER));
848 old = value->data[0].v_pointer;
850 g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, WEB_PROVISIONING_TYPE_PARSER));
851 g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
852 value->data[0].v_pointer = v_object;
853 web_provisioning_parser_ref (value->data[0].v_pointer);
855 value->data[0].v_pointer = NULL;
858 web_provisioning_parser_unref (old);
863 void web_provisioning_value_take_parser (GValue* value, gpointer v_object) {
864 WebProvisioningParser* old;
865 g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, WEB_PROVISIONING_TYPE_PARSER));
866 old = value->data[0].v_pointer;
868 g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, WEB_PROVISIONING_TYPE_PARSER));
869 g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
870 value->data[0].v_pointer = v_object;
872 value->data[0].v_pointer = NULL;
875 web_provisioning_parser_unref (old);
880 static void web_provisioning_parser_class_init (WebProvisioningParserClass * klass) {
881 web_provisioning_parser_parent_class = g_type_class_peek_parent (klass);
882 WEB_PROVISIONING_PARSER_CLASS (klass)->finalize = web_provisioning_parser_finalize;
883 g_type_class_add_private (klass, sizeof (WebProvisioningParserPrivate));
887 static void web_provisioning_parser_instance_init (WebProvisioningParser * self) {
888 self->priv = WEB_PROVISIONING_PARSER_GET_PRIVATE (self);
893 static void web_provisioning_parser_finalize (WebProvisioningParser* obj) {
894 WebProvisioningParser * self;
895 self = WEB_PROVISIONING_PARSER (obj);
896 _g_free0 (self->priv->text);
897 _g_free0 (self->priv->path);
901 GType web_provisioning_parser_get_type (void) {
902 static volatile gsize web_provisioning_parser_type_id__volatile = 0;
903 if (g_once_init_enter (&web_provisioning_parser_type_id__volatile)) {
904 static const GTypeValueTable g_define_type_value_table = { web_provisioning_value_parser_init, web_provisioning_value_parser_free_value, web_provisioning_value_parser_copy_value, web_provisioning_value_parser_peek_pointer, "p", web_provisioning_value_parser_collect_value, "p", web_provisioning_value_parser_lcopy_value };
905 static const GTypeInfo g_define_type_info = { sizeof (WebProvisioningParserClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) web_provisioning_parser_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (WebProvisioningParser), 0, (GInstanceInitFunc) web_provisioning_parser_instance_init, &g_define_type_value_table };
906 static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
907 GType web_provisioning_parser_type_id;
908 web_provisioning_parser_type_id = g_type_register_fundamental (g_type_fundamental_next (), "WebProvisioningParser", &g_define_type_info, &g_define_type_fundamental_info, 0);
909 g_once_init_leave (&web_provisioning_parser_type_id__volatile, web_provisioning_parser_type_id);
911 return web_provisioning_parser_type_id__volatile;
915 gpointer web_provisioning_parser_ref (gpointer instance) {
916 WebProvisioningParser* self;
918 g_atomic_int_inc (&self->ref_count);
923 void web_provisioning_parser_unref (gpointer instance) {
924 WebProvisioningParser* self;
926 if (g_atomic_int_dec_and_test (&self->ref_count)) {
927 WEB_PROVISIONING_PARSER_GET_CLASS (self)->finalize (self);
928 g_type_free_instance ((GTypeInstance *) self);
933 gint web_provisioning_main (char** args, int args_length1) {
935 WebProvisioningParser* webp;
936 if (args_length1 < 2) {
937 g_error ("moonshot-webp-parser.vala:246: Usage %s [-a] WEB_PROVISIONING_FILE", args[0]);
939 if (!g_file_test (args[1], G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
940 g_error ("moonshot-webp-parser.vala:251: %s does not exist", args[1]);
942 webp = web_provisioning_parser_new (args[1]);
943 web_provisioning_parser_parse (webp);
945 IdCard** card_collection;
946 int card_collection_length1;
948 card_collection = web_provisioning_cards;
949 card_collection_length1 = web_provisioning_cards_length1;
950 for (card_it = 0; card_it < web_provisioning_cards_length1; card_it = card_it + 1) {
952 card = _g_object_ref0 (card_collection[card_it]);
954 MoonshotError* _error_;
955 gint rules_patterns_length1;
956 gint _rules_patterns_size_;
958 char** _tmp0_ = NULL;
959 char** rules_patterns;
960 gint rules_always_confirm_length1;
961 gint _rules_always_confirm_size_;
963 char** _tmp2_ = NULL;
964 char** rules_always_confirm;
967 MoonshotError* _tmp14_ = NULL;
968 MoonshotError* _tmp15_;
970 rules_patterns = (_tmp1_ = (_tmp0_ = g_new0 (char*, 0 + 1), _tmp0_), rules_patterns_length1 = 0, _rules_patterns_size_ = rules_patterns_length1, _tmp1_);
971 rules_always_confirm = (_tmp3_ = (_tmp2_ = g_new0 (char*, 0 + 1), _tmp2_), rules_always_confirm_length1 = 0, _rules_always_confirm_size_ = rules_always_confirm_length1, _tmp3_);
979 rules_patterns = (_tmp6_ = g_new0 (char*, _tmp5_ + 1), rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL), rules_patterns_length1 = _tmp5_, _rules_patterns_size_ = rules_patterns_length1, _tmp6_);
980 rules_always_confirm = (_tmp8_ = g_new0 (char*, _tmp7_ + 1), rules_always_confirm = (_vala_array_free (rules_always_confirm, rules_always_confirm_length1, (GDestroyNotify) g_free), NULL), rules_always_confirm_length1 = _tmp7_, _rules_always_confirm_size_ = rules_always_confirm_length1, _tmp8_);
984 int r_collection_length1;
986 r_collection = id_card_get_rules (card, &_tmp9_);
987 r_collection_length1 = _tmp9_;
988 for (r_it = 0; r_it < _tmp9_; r_it = r_it + 1) {
991 r = (rule_copy (&r_collection[r_it], &_tmp12_), _tmp12_);
995 rules_patterns[i] = (_tmp10_ = g_strdup (r.pattern), _g_free0 (rules_patterns[i]), _tmp10_);
996 rules_always_confirm[i] = (_tmp11_ = g_strdup (r.always_confirm), _g_free0 (rules_always_confirm[i]), _tmp11_);
1003 moonshot_install_id_card (id_card_get_display_name (card), id_card_get_username (card), id_card_get_password (card), id_card_get_issuer (card), rules_patterns, rules_patterns_length1, rules_always_confirm, rules_always_confirm_length1, id_card_get_services (card, &_tmp13_), _tmp13_, trust_anchor_get_ca_cert (id_card_get_trust_anchor (card)), trust_anchor_get_subject (id_card_get_trust_anchor (card)), trust_anchor_get_subject_alt (id_card_get_trust_anchor (card)), trust_anchor_get_server_cert (id_card_get_trust_anchor (card)), &_tmp14_);
1004 _error_ = (_tmp15_ = _tmp14_, _moonshot_error_free0 (_error_), _tmp15_);
1005 if (_error_ != NULL) {
1006 fprintf (stderr, "Error: %s", _error_->message);
1007 rules_always_confirm = (_vala_array_free (rules_always_confirm, rules_always_confirm_length1, (GDestroyNotify) g_free), NULL);
1008 rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
1009 _moonshot_error_free0 (_error_);
1010 _g_object_unref0 (card);
1013 rules_always_confirm = (_vala_array_free (rules_always_confirm, rules_always_confirm_length1, (GDestroyNotify) g_free), NULL);
1014 rules_patterns = (_vala_array_free (rules_patterns, rules_patterns_length1, (GDestroyNotify) g_free), NULL);
1015 _moonshot_error_free0 (_error_);
1016 _g_object_unref0 (card);
1021 _web_provisioning_parser_unref0 (webp);
1026 int main (int argc, char ** argv) {
1028 return web_provisioning_main (argv, argc);
1032 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
1033 if ((array != NULL) && (destroy_func != NULL)) {
1035 for (i = 0; i < array_length; i = i + 1) {
1036 if (((gpointer*) array)[i] != NULL) {
1037 destroy_func (((gpointer*) array)[i]);
1044 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
1045 _vala_array_destroy (array, array_length, destroy_func);
1050 static gint _vala_array_length (gpointer array) {
1054 while (((gpointer*) array)[length]) {
1062 static int _vala_strcmp0 (const char * str1, const char * str2) {
1064 return -(str1 != str2);
1067 return str1 != str2;
1069 return strcmp (str1, str2);