From c62bceb740a118aef41309560df162d3a2185cd1 Mon Sep 17 00:00:00 2001 From: kremlin Date: Mon, 21 Jul 2014 19:55:40 -0500 Subject: [PATCH] clean up hostnamed.c, clear out localed.c for copying fix minor memory management issues in hostnamed.c. localed.c was previously based on a version of hostnamed.c i copied, however it has strayed too far away from the working version and must be recopied/refactored. --- src/interfaces/hostnamed/hostnamed.c | 27 +++--- src/interfaces/localed/localed.c | 138 --------------------------- 2 files changed, 11 insertions(+), 154 deletions(-) diff --git a/src/interfaces/hostnamed/hostnamed.c b/src/interfaces/hostnamed/hostnamed.c index 1bfcd65..263d2f6 100644 --- a/src/interfaces/hostnamed/hostnamed.c +++ b/src/interfaces/hostnamed/hostnamed.c @@ -194,8 +194,8 @@ static void hostnamed_on_name_acquired(GDBusConnection *conn, /* free()'s */ void hostnamed_mem_clean() { - ddg_ptr_array_foreach(hostnamed_freeable, (GFunc) g_free, NULL); - g_ptr_array_free(hostnamed_freeable); + g_ptr_array_foreach(hostnamed_freeable, (GFunc) g_free, NULL); + g_ptr_array_free(hostnamed_freeable, TRUE); } static void hostnamed_on_name_lost(GDBusConnection *conn, @@ -209,12 +209,15 @@ static void hostnamed_on_name_lost(GDBusConnection *conn, } -/* safe call to try and start hostnamed */ -void hostnamed_init() { +int main() { + + guint bus_descriptor; + GMainLoop *hostnamed_loop; + hostnamed_loop = g_main_loop_new(NULL, TRUE); - guint bus_descriptor; + /* config stuff here */ - bus_descriptor = g_bus_own_name(G_BUS_TYPE_SYSTEM, + bus_descriptor = g_bus_own_name(G_BUS_TYPE_SYSTEM, "org.freedesktop.hostname1", G_BUS_NAME_OWNER_FLAGS_NONE, hostnamed_on_bus_acquired, @@ -223,19 +226,11 @@ void hostnamed_init() { NULL, NULL); -} - -int main() { - - GMainLoop *hostnamed_loop; - hostnamed_loop = g_main_loop_new(NULL, TRUE); - - /* config stuff here */ - - hostnamed_init(); g_main_loop_run(hostnamed_loop); g_main_loop_unref(hostnamed_loop); + g_bus_unown_name(bus_descriptor); + hostnamed_mem_clean(); return 0; diff --git a/src/interfaces/localed/localed.c b/src/interfaces/localed/localed.c index 1c628da..0196a48 100644 --- a/src/interfaces/localed/localed.c +++ b/src/interfaces/localed/localed.c @@ -21,144 +21,6 @@ #include "localed-gen.h" -GPtrArray *localed_freeable; -GDBusNodeInfo *spect_data; -localedLocale1 *localed_interf; - -/* begin method/property/signal code */ - -/* TODO make sure these guys only work if called by root */ - -/* Example: -static gboolean -on_handle_set_hostname(localedLocale1 *hn1_passed_interf, - GDBusMethodInvocation *invoc, - const gchar *greet, - gpointer data) { - return FALSE; -} */ - -/* note: all localed/locale1's properties are read-only, - * and do not need set_ functions, gdbus-codegen realized - * this from the XML and handled the to-be error of trying - * to set a read-only property's value - */ - -/* Example: - -const gchar * -our_get_hostname() { - - return "TODO"; -}*/ - -/* end method/property/signal code, begin bus/name handlers */ - -static void localed_on_bus_acquired(GDBusConnection *conn, - const gchar *name, - gpointer user_data) { - - g_print("got bus, name: %s\n", name); - -} - -static void localed_on_name_acquired(GDBusConnection *conn, - const gchar *name, - gpointer user_data) { - - g_print("got '%s' on system bus\n", name); - - localed_interf = localed_locale1_skeleton_new(); - - /* attach function pointers to generated struct's method handlers */ - /*g_signal_connect(localed_interf, "handle-set-hostname", G_CALLBACK(on_handle_set_hostname), NULL); - g_signal_connect(localed_interf, "handle-set-static-hostname", G_CALLBACK(on_handle_set_static_hostname), NULL); - g_signal_connect(localed_interf, "handle-set-pretty-hostname", G_CALLBACK(on_handle_set_pretty_hostname), NULL); - g_signal_connect(localed_interf, "handle-set-chassis", G_CALLBACK(on_handle_set_chassis), NULL); - g_signal_connect(localed_interf, "handle-set-icon-name", G_CALLBACK(on_handle_set_icon_name), NULL); */ - - /* set our properties before export */ - /*localed_locale1_set_hostname(localed_interf, our_get_hostname()); - localed_locale1_set_static_hostname(localed_interf, our_get_static_hostname()); - localed_locale1_set_pretty_hostname(localed_interf, our_get_pretty_hostname()); - localed_locale1_set_chassis(localed_interf, our_get_chassis()); - localed_locale1_set_icon_name(localed_interf, our_get_icon_name()); - localed_locale1_set_kernel_name(localed_interf, our_get_kernel_name()); - localed_locale1_set_kernel_version(localed_interf, our_get_kernel_version()); - localed_locale1_set_kernel_release(localed_interf, our_get_kernel_release()); - localed_locale1_set_operating_system_cpename(localed_interf, our_get_os_cpename()); - localed_locale1_set_operating_system_pretty_name(localed_interf, our_get_os_pretty_name()); */ - - if(!g_dbus_interface_skeleton_export(G_DBUS_INTERFACE_SKELETON(localed_interf), - conn, - "/org/freedesktop/locale1", - NULL)) { - - g_printf("failed to export locale1's interface on system bus!"); - } - -} - -/* free()'s */ -void localed_mem_clean() { - - g_ptr_array_foreach(localed_freeable, (GFunc) g_free, NULL); -} - -static void localed_on_name_lost(GDBusConnection *conn, - const gchar *name, - gpointer user_data) { - - g_print("lost name %s, exiting...", name); - - localed_mem_clean(); - g_dbus_interface_skeleton_unexport(G_DBUS_INTERFACE_SKELETON(localed_interf)); - - /* TODO exit through g_main_loop properly... */ -} - -/* safe call to try and start localed */ -void localed_init() { - - guint bus_descriptor; - GError *err = NULL; - gchar **localed_ispect_xml; - gchar *localed_joined_xml; - - localed_freeable = g_ptr_array_new(); - localed_ispect_xml = g_malloc(3000); - - g_file_get_contents("conf/localed-ispect.xml", localed_ispect_xml, NULL, NULL); - localed_joined_xml = g_strjoinv("\n", localed_ispect_xml); - spect_data = g_dbus_node_info_new_for_xml(localed_joined_xml, NULL); - - g_free(localed_ispect_xml); - g_ptr_array_add(localed_freeable, localed_joined_xml); - - bus_descriptor = g_bus_own_name(G_BUS_TYPE_SYSTEM, - "org.freedesktop.locale1", - G_BUS_NAME_OWNER_FLAGS_NONE, - localed_on_bus_acquired, - localed_on_name_acquired, - localed_on_name_lost, - NULL, - NULL); - - /* TODO: malloc and return reference as if a main() closed */ -} - int main() { - - GMainLoop *localed_loop; - localed_loop = g_main_loop_new(NULL, TRUE); - - /* config stuff here */ - - localed_init(); - - g_main_loop_run(localed_loop); - g_main_loop_unref(localed_loop); - return 0; } - -- 2.41.0