From: kremlin Date: Fri, 30 May 2014 07:01:49 +0000 (-0500) Subject: get hostnamed to show up on session bus, incomplete X-Git-Tag: hostnamed-copyable~54 X-Git-Url: https://uglyman.kremlin.cc/gitweb/gitweb.cgi?a=commitdiff_plain;h=387173cba1f381beb144043ed0b6b4074084d318;p=systembsd.git get hostnamed to show up on session bus, incomplete --- diff --git a/src/.main.c.swp b/src/.main.c.swp new file mode 100644 index 0000000..b812616 Binary files /dev/null and b/src/.main.c.swp differ diff --git a/src/main.c b/src/main.c index 2ff00fd..8ba8907 100644 --- a/src/main.c +++ b/src/main.c @@ -1,7 +1,13 @@ +#include #include "modules/hostnamed/hostnamed.c" int main() { + GMainLoop *loop; + hostnamed_init(); - for(;;) {} + + loop = g_main_loop_new(NULL, FALSE); + g_main_loop_run(loop); + return 0; } diff --git a/src/modules/hostnamed/.hostnamed.c.swp b/src/modules/hostnamed/.hostnamed.c.swp new file mode 100644 index 0000000..d13e399 Binary files /dev/null and b/src/modules/hostnamed/.hostnamed.c.swp differ diff --git a/src/modules/hostnamed/hostnamed.c b/src/modules/hostnamed/hostnamed.c index f3632f6..e01742c 100644 --- a/src/modules/hostnamed/hostnamed.c +++ b/src/modules/hostnamed/hostnamed.c @@ -1,29 +1,136 @@ /* #include */ #include +/* testing, for now */ +static GDBusNodeInfo *spect_data = NULL; +static const gchar spect_xml[] = + "" + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + ""; + +static void handle_method_call() {} +static GVariant * handle_get_property() {return NULL;} +static gboolean handle_set_property() {return FALSE;} + +/* TODO: what's this guy do */ +static const GDBusInterfaceVTable interface_vtable = +{ + handle_method_call, + handle_get_property, + handle_set_property +}; + + + static void on_bus_acquired(GDBusConnection *conn, const gchar *name, gpointer user_data) { g_print("got bus, name: %s\n", name); + + spect_data = g_dbus_node_info_new_for_xml(spect_xml, NULL); + guint reg_id; - /* g_print("at %p, data @ %p\n", (void*)conn, user_data); */ + reg_id = g_dbus_connection_register_object (conn, + "/org/freedesktop/hostname1", + spect_data->interfaces[0], + &interface_vtable, + NULL, + NULL, + NULL ); + g_assert(reg_id > 0); } static void on_name_acquired(GDBusConnection *conn, const gchar *name, gpointer user_data) { g_print("got name %s\n", name); - - /* g_print("at %p, data @ %p\n", (void*)conn, user_data); */ } static void on_name_lost(GDBusConnection *conn, const gchar *name, gpointer user_data) { g_print("lost name %s\n", name); - - /* g_print("at %p, data @ %p\n", (void*)conn, user_data); */ } void hostnamed_init() { + guint bus_descriptor; GError *err = NULL; - bus_descriptor = g_bus_own_name(G_BUS_TYPE_SYSTEM, + bus_descriptor = g_bus_own_name(G_BUS_TYPE_SESSION, (gchar *)"org.freedesktop.hostname1", G_BUS_NAME_OWNER_FLAGS_NONE, on_bus_acquired, @@ -33,3 +140,4 @@ void hostnamed_init() { NULL); } +