From c992721530292cac0e5e3cbbe808e54f1ac5509c Mon Sep 17 00:00:00 2001 From: kremlin Date: Mon, 2 Jun 2014 12:40:33 -0500 Subject: remove crapfile, rename 'modules' -> 'interfaces' --- src/interfaces/hostnamed/hostnamed.c | 197 +++++++++++++++++++++++++++++++++++ src/interfaces/localed/tmp | 1 + src/interfaces/logind/tmp | 1 + src/interfaces/timedated/tmp | 1 + 4 files changed, 200 insertions(+) create mode 100644 src/interfaces/hostnamed/hostnamed.c create mode 100644 src/interfaces/localed/tmp create mode 100644 src/interfaces/logind/tmp create mode 100644 src/interfaces/timedated/tmp (limited to 'src/interfaces') diff --git a/src/interfaces/hostnamed/hostnamed.c b/src/interfaces/hostnamed/hostnamed.c new file mode 100644 index 0000000..1638b31 --- /dev/null +++ b/src/interfaces/hostnamed/hostnamed.c @@ -0,0 +1,197 @@ +#include + +/* testing, for now */ +static GDBusNodeInfo *spect_data = NULL; +static const gchar spect_xml[] = + "" + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + ""; + +static void handle_method_call(GDBusConnection *conn, + const gchar *sender, + const gchar *obj_path, + const gchar *interf_name, + const gchar *method_name, + GVariant *params, + GDBusMethodInvocation *invc, + gpointer usrdat) { + + g_printf("%s wants to call %s, at %s with interface %s\n", sender, method_name, obj_path, interf_name); + + g_dbus_method_invocation_return_value(invc, &spect_xml); + +} + + +static GVariant * handle_get_property(GDBusConnection *conn, + const gchar *sender, + const gchar *obj_path, + const gchar *interf_name, + const gchar *prop_name, + GError **err, + gpointer usr_data) { + + GVariant *ret; + ret = g_variant_new_string(""); + g_snprintf(ret, 100, "%s touched property %s at %s", sender, prop_name, obj_path); + + return ret; +} + +static gboolean handle_set_property(GDBusConnection *conn, + const gchar *sender, + const gchar *obj_path, + const gchar *interf_name, + const gchar *prop_name, + GVariant *val, + GError **err, + gpointer usr_data) { + g_dbus_connection_emit_signal(conn, + NULL, + obj_path, + "org.freedesktop.DBus.Properties", + "PropertiesChanged", + NULL, /* incorrect */ + NULL); + + return TRUE; +} + +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); + + guint reg_id; + + 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); +} + +static void on_name_lost(GDBusConnection *conn, const gchar *name, gpointer user_data) { + g_print("lost name %s, exiting...\n", name); + exit(1); +} + +void hostnamed_init() { + + guint bus_descriptor; + GError *err = NULL; + GMainLoop *loop; + + spect_data = g_dbus_node_info_new_for_xml(spect_xml, NULL); + + bus_descriptor = g_bus_own_name(G_BUS_TYPE_SESSION, + (gchar *)"org.freedesktop.hostname1", + G_BUS_NAME_OWNER_FLAGS_NONE, + on_bus_acquired, + on_name_acquired, + on_name_lost, + NULL, + NULL); + + loop = g_main_loop_new(NULL, FALSE); + g_main_loop_run(loop); + + /* unclear */ + + g_bus_unown_name(bus_descriptor); + g_dbus_node_info_unref(spect_data); +} + diff --git a/src/interfaces/localed/tmp b/src/interfaces/localed/tmp new file mode 100644 index 0000000..c32d7ff --- /dev/null +++ b/src/interfaces/localed/tmp @@ -0,0 +1 @@ +TODO: delete me diff --git a/src/interfaces/logind/tmp b/src/interfaces/logind/tmp new file mode 100644 index 0000000..c32d7ff --- /dev/null +++ b/src/interfaces/logind/tmp @@ -0,0 +1 @@ +TODO: delete me diff --git a/src/interfaces/timedated/tmp b/src/interfaces/timedated/tmp new file mode 100644 index 0000000..c32d7ff --- /dev/null +++ b/src/interfaces/timedated/tmp @@ -0,0 +1 @@ +TODO: delete me -- cgit v1.2.3