+ g_printf("got bus/name, exporting %s's interface...\n", name);
+
+ localed_interf = locale1_skeleton_new();
+
+ /* attach function pointers to generated struct's method handlers */
+ g_signal_connect(localed_interf, "handle-set-locale", G_CALLBACK(on_handle_set_locale), NULL);
+ g_signal_connect(localed_interf, "handle-set-vconsole-keyboard", G_CALLBACK(on_handle_set_v_console_keyboard), NULL);
+ g_signal_connect(localed_interf, "handle-set-x11-keyboard", G_CALLBACK(on_handle_set_x11_keyboard), NULL);
+
+ /* set our properties before export */
+ locale1_set_locale(localed_interf, our_get_locale());
+ locale1_set_vconsole_keymap(localed_interf, our_get_v_console_keymap());
+ locale1_set_vconsole_keymap_toggle(localed_interf, our_get_v_console_keymap_toggle());
+ locale1_set_x11_layout(localed_interf, our_get_x11_layout());
+ locale1_set_x11_model(localed_interf, our_get_x11_model());
+ locale1_set_x11_variant(localed_interf, our_get_x11_variant());
+ locale1_set_x11_options(localed_interf, our_get_x11_options());
+
+ if(!g_dbus_interface_skeleton_export(G_DBUS_INTERFACE_SKELETON(localed_interf),
+ conn,
+ "/org/freedesktop/locale1",
+ NULL)) {
+
+ g_printf("failed to export %s's interface!\n", name);
+ localed_mem_clean();
+
+ } else {