]> source.dussan.org Git - rspamd.git/commitdiff
Add basic list config parser.
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Mon, 23 Apr 2012 14:47:21 +0000 (18:47 +0400)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Mon, 23 Apr 2012 14:47:21 +0000 (18:47 +0400)
src/cfg_xml.c
src/cfg_xml.h

index c700a03661a143bbb2dc78588eea40c3828f2cb7..924dc283e28346ffdb722e1c4b4eda8320b7ab37 100644 (file)
@@ -1537,6 +1537,18 @@ xml_handle_string_list (struct config_file *cfg, struct rspamd_xml_userdata *ctx
        return TRUE;
 }
 
+gboolean
+xml_handle_list (struct config_file *cfg, struct rspamd_xml_userdata *ctx, GHashTable *attrs, gchar *data, gpointer user_data, gpointer dest_struct, gint offset)
+{
+       /* Simply assign pointer to pointer */
+       GList                       **dest;
+
+       dest = (GList **)G_STRUCT_MEMBER_P (dest_struct, offset);
+       *dest = g_list_prepend (*dest, memory_pool_strdup (cfg->cfg_pool, data));
+
+       return TRUE;
+}
+
 
 gboolean 
 xml_handle_size (struct config_file *cfg, struct rspamd_xml_userdata *ctx, GHashTable *attrs, gchar *data, gpointer user_data, gpointer dest_struct, gint offset)
index 4e7f1481aaf7adc08f54b10ab44c2f1600fa7380..b78a74fd91764544d4550ba007cd48285d93c257 100644 (file)
@@ -95,6 +95,9 @@ void rspamd_xml_error (GMarkupParseContext            *context,
 gboolean xml_handle_string (struct config_file *cfg, struct rspamd_xml_userdata *ctx, GHashTable *attrs, gchar *data, gpointer user_data, gpointer dest_struct, gint offset);
 gboolean xml_handle_string_list (struct config_file *cfg, struct rspamd_xml_userdata *ctx, GHashTable *attrs, gchar *data, gpointer user_data, gpointer dest_struct, gint offset);
 
+/* Handle glist attributes as strings */
+gboolean xml_handle_list (struct config_file *cfg, struct rspamd_xml_userdata *ctx, GHashTable *attrs, gchar *data, gpointer user_data, gpointer dest_struct, gint offset);
+
 /* Numeric params */
 gboolean xml_handle_size (struct config_file *cfg, struct rspamd_xml_userdata *ctx, GHashTable *attrs, gchar *data, gpointer user_data, gpointer dest_struct, gint offset);
 gboolean xml_handle_size_64 (struct config_file *cfg, struct rspamd_xml_userdata *ctx, GHashTable *attrs, gchar *data, gpointer user_data, gpointer dest_struct, gint offset);