X-Git-Url: https://uglyman.kremlin.cc/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Finterfaces%2Fhostnamed%2Fhostnamed.c;h=c45905dd16ab07eac09c3dd9bd912c4ef140728e;hb=1be94ede1c604325211efe45754026d1d2bac3cf;hp=f250aaab8b3c666b1776011e163151324325cd32;hpb=7f0a0212d65905aea6c875b6250e0a87dc9820d8;p=systembsd.git diff --git a/src/interfaces/hostnamed/hostnamed.c b/src/interfaces/hostnamed/hostnamed.c index f250aaa..c45905d 100644 --- a/src/interfaces/hostnamed/hostnamed.c +++ b/src/interfaces/hostnamed/hostnamed.c @@ -17,21 +17,21 @@ #include #include -#include -#include +#include -#include "hostnamed.h" -#include "hostnamed-gen.c" +#include + +#include "hostnamed-gen.h" GPtrArray *hostnamed_freeable; GDBusNodeInfo *spect_data; -hostnamedHostname1 *hostnamed_interf; +Hostname1 *hostnamed_interf; /* begin method/property/signal code */ /* TODO make sure these guys only work if called by root */ static gboolean -on_handle_set_hostname(hostnamedHostname1 *hn1_passed_interf, +on_handle_set_hostname(Hostname1 *hn1_passed_interf, GDBusMethodInvocation *invoc, const gchar *greet, gpointer data) { @@ -39,7 +39,7 @@ on_handle_set_hostname(hostnamedHostname1 *hn1_passed_interf, } static gboolean -on_handle_set_static_hostname(hostnamedHostname1 *hn1_passed_interf, +on_handle_set_static_hostname(Hostname1 *hn1_passed_interf, GDBusMethodInvocation *invoc, const gchar *greet, gpointer data) { @@ -47,7 +47,7 @@ on_handle_set_static_hostname(hostnamedHostname1 *hn1_passed_interf, } static gboolean -on_handle_set_pretty_hostname(hostnamedHostname1 *hn1_passed_interf, +on_handle_set_pretty_hostname(Hostname1 *hn1_passed_interf, GDBusMethodInvocation *invoc, const gchar *greet, gpointer data) { @@ -55,7 +55,7 @@ on_handle_set_pretty_hostname(hostnamedHostname1 *hn1_passed_interf, } static gboolean -on_handle_set_chassis(hostnamedHostname1 *hn1_passed_interf, +on_handle_set_chassis(Hostname1 *hn1_passed_interf, GDBusMethodInvocation *invoc, const gchar *greet, gpointer data) { @@ -63,7 +63,7 @@ on_handle_set_chassis(hostnamedHostname1 *hn1_passed_interf, } static gboolean -on_handle_set_icon_name(hostnamedHostname1 *hn1_passed_interf, +on_handle_set_icon_name(Hostname1 *hn1_passed_interf, GDBusMethodInvocation *invoc, const gchar *greet, gpointer data) { @@ -79,7 +79,13 @@ on_handle_set_icon_name(hostnamedHostname1 *hn1_passed_interf, const gchar * our_get_hostname() { - return "TODO"; + int hostname_try; + gchar *hostname_buf; + + hostname_buf = (gchar*) g_malloc0(MAXHOSTNAMELEN); + hostname_try = gethostname(hostname_buf, MAXHOSTNAMELEN); + + return hostname_buf; } const gchar * @@ -147,12 +153,12 @@ static void hostnamed_on_bus_acquired(GDBusConnection *conn, } static void hostnamed_on_name_acquired(GDBusConnection *conn, - const gchar *name, - gpointer user_data) { + const gchar *name, + gpointer user_data) { g_print("got '%s' on system bus\n", name); - hostnamed_interf = hostnamed_hostname1_skeleton_new(); + hostnamed_interf = hostname1_skeleton_new(); /* attach function pointers to generated struct's method handlers */ g_signal_connect(hostnamed_interf, "handle-set-hostname", G_CALLBACK(on_handle_set_hostname), NULL); @@ -162,37 +168,42 @@ static void hostnamed_on_name_acquired(GDBusConnection *conn, g_signal_connect(hostnamed_interf, "handle-set-icon-name", G_CALLBACK(on_handle_set_icon_name), NULL); /* set our properties before export */ - hostnamed_hostname1_set_hostname(hostnamed_interf, our_get_hostname()); - hostnamed_hostname1_set_static_hostname(hostnamed_interf, our_get_static_hostname()); - hostnamed_hostname1_set_pretty_hostname(hostnamed_interf, our_get_pretty_hostname()); - hostnamed_hostname1_set_chassis(hostnamed_interf, our_get_chassis()); - hostnamed_hostname1_set_icon_name(hostnamed_interf, our_get_icon_name()); - hostnamed_hostname1_set_kernel_name(hostnamed_interf, our_get_kernel_name()); - hostnamed_hostname1_set_kernel_version(hostnamed_interf, our_get_kernel_version()); - hostnamed_hostname1_set_kernel_release(hostnamed_interf, our_get_kernel_release()); - hostnamed_hostname1_set_operating_system_cpename(hostnamed_interf, our_get_os_cpename()); - hostnamed_hostname1_set_operating_system_pretty_name(hostnamed_interf, our_get_os_pretty_name()); + hostname1_set_hostname(hostnamed_interf, our_get_hostname()); + hostname1_set_static_hostname(hostnamed_interf, our_get_static_hostname()); + hostname1_set_pretty_hostname(hostnamed_interf, our_get_pretty_hostname()); + hostname1_set_chassis(hostnamed_interf, our_get_chassis()); + hostname1_set_icon_name(hostnamed_interf, our_get_icon_name()); + hostname1_set_kernel_name(hostnamed_interf, our_get_kernel_name()); + hostname1_set_kernel_version(hostnamed_interf, our_get_kernel_version()); + hostname1_set_kernel_release(hostnamed_interf, our_get_kernel_release()); + hostname1_set_operating_system_cpename(hostnamed_interf, our_get_os_cpename()); + hostname1_set_operating_system_pretty_name(hostnamed_interf, our_get_os_pretty_name()); if(!g_dbus_interface_skeleton_export(G_DBUS_INTERFACE_SKELETON(hostnamed_interf), - conn, - "/org/freedesktop/hostname1", - NULL)) { + conn, + "/org/freedesktop/hostname1", + NULL)) { - g_printf("failed to export hostname1's interface on system bus!"); + g_printf("Failed to export Hostname1's interface!"); } } +/* free()'s */ +void hostnamed_mem_clean() { + + g_ptr_array_foreach(hostnamed_freeable, (GFunc) g_free, NULL); +} + static void hostnamed_on_name_lost(GDBusConnection *conn, - const gchar *name, - gpointer user_data) { + const gchar *name, + gpointer user_data) { g_print("lost name %s, exiting...", name); hostnamed_mem_clean(); g_dbus_interface_skeleton_unexport(G_DBUS_INTERFACE_SKELETON(hostnamed_interf)); - /* TODO exit through g_main_loop properly... */ } /* safe call to try and start hostnamed */ @@ -209,13 +220,21 @@ void hostnamed_init() { NULL, NULL); - /* TODO: malloc and return reference as if a main() closed */ } -/* free()'s */ -void hostnamed_mem_clean() { +int main() { - g_ptr_array_foreach(hostnamed_freeable, (GFunc) g_free, NULL); + 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); + + return 0; } /* TODO figure out DMI variables on obsd */ @@ -263,3 +282,4 @@ void hostnamed_mem_clean() { g_free (filebuf); return ret; }*/ +