Implement doctype check in the trivial parser
authorChristian Dywan <christian.dywan@lanedo.com>
Mon, 21 Jun 2010 05:13:47 +0000 (07:13 +0200)
committerWill Thompson <will.thompson@collabora.co.uk>
Tue, 22 Jun 2010 15:59:26 +0000 (16:59 +0100)
This is needed for the libxml parser backend.

bus/config-parser-trivial.c
bus/config-parser-trivial.h

index fd016a8..8a1f504 100644 (file)
@@ -131,6 +131,25 @@ bus_config_parser_unref (BusConfigParser *parser)
 }
 
 dbus_bool_t
+bus_config_parser_check_doctype (BusConfigParser   *parser,
+                                 const char        *doctype,
+                                 DBusError         *error)
+{
+  _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
+  if (strcmp (doctype, "busconfig") != 0)
+    {
+      dbus_set_error (error,
+                      DBUS_ERROR_FAILED,
+                      "Configuration file has the wrong document type %s",
+                      doctype);
+      return FALSE;
+    }
+  else
+    return TRUE;
+}
+
+dbus_bool_t
 bus_config_parser_start_element (BusConfigParser   *parser,
                                  const char        *element_name,
                                  const char       **attribute_names,
index ce542bf..6733b1f 100644 (file)
@@ -41,6 +41,9 @@ BusConfigParser* bus_config_parser_new (const DBusString      *basedir,
 
 BusConfigParser* bus_config_parser_ref           (BusConfigParser   *parser);
 void             bus_config_parser_unref         (BusConfigParser   *parser);
+dbus_bool_t      bus_config_parser_check_doctype (BusConfigParser   *parser,
+                                                  const char        *doctype,
+                                                  DBusError         *error);
 dbus_bool_t      bus_config_parser_start_element (BusConfigParser   *parser,
                                                   const char        *element_name,
                                                   const char       **attribute_names,