+ /* TODO exit through g_main_loop properly... */
+}
+
+/* safe call to try and start hostnamed */
+GError *hostnamed_init() {
+
+ guint bus_descriptor;
+ GError *err = NULL;
+ gchar **hostnamed_ispect_xml;
+ gchar *hostnamed_joined_xml;
+
+ hostnamed_freeable = g_ptr_array_new();
+ hostnamed_ispect_xml = g_malloc(3000);
+
+ g_file_get_contents("conf/hostnamed-ispect.xml", hostnamed_ispect_xml, NULL, NULL);
+ hostnamed_joined_xml = g_strjoinv("\n", hostnamed_ispect_xml);
+ spect_data = g_dbus_node_info_new_for_xml(hostnamed_joined_xml, NULL);
+
+ g_free(hostnamed_ispect_xml);
+ g_ptr_array_add(hostnamed_freeable, hostnamed_joined_xml);
+
+ bus_descriptor = g_bus_own_name(G_BUS_TYPE_SYSTEM,
+ "org.freedesktop.hostname1",
+ G_BUS_NAME_OWNER_FLAGS_NONE,
+ on_bus_acquired,
+ on_name_acquired,
+ on_name_lost,
+ NULL,
+ NULL);
+
+ /* TODO: malloc and return reference as if a main() closed */
+ return err;
+}