aboutsummaryrefslogtreecommitdiffstats
path: root/src/interfaces/hostnamed/hostnamed.c
diff options
context:
space:
mode:
authorkremlin <ian@kremlin.cc>2014-07-22 09:37:41 +0800
committerkremlin <ian@kremlin.cc>2014-07-22 09:37:41 +0800
commit28cac2f0037a0f2d5f8f8f783cd157af858530ab (patch)
treeb6dd641cc992f141541731958b1f92d5252be21b /src/interfaces/hostnamed/hostnamed.c
parentc62bceb740a118aef41309560df162d3a2185cd1 (diff)
downloadsystembsd-28cac2f0037a0f2d5f8f8f783cd157af858530ab.tar
systembsd-28cac2f0037a0f2d5f8f8f783cd157af858530ab.tar.gz
systembsd-28cac2f0037a0f2d5f8f8f783cd157af858530ab.tar.bz2
systembsd-28cac2f0037a0f2d5f8f8f783cd157af858530ab.tar.lz
systembsd-28cac2f0037a0f2d5f8f8f783cd157af858530ab.tar.xz
systembsd-28cac2f0037a0f2d5f8f8f783cd157af858530ab.tar.zst
systembsd-28cac2f0037a0f2d5f8f8f783cd157af858530ab.zip
hostname1 now returns hostname minus domain info
also initializes pointer array properly, no more GLib warnings
Diffstat (limited to 'src/interfaces/hostnamed/hostnamed.c')
-rw-r--r--src/interfaces/hostnamed/hostnamed.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/interfaces/hostnamed/hostnamed.c b/src/interfaces/hostnamed/hostnamed.c
index 263d2f6..33ea79e 100644
--- a/src/interfaces/hostnamed/hostnamed.c
+++ b/src/interfaces/hostnamed/hostnamed.c
@@ -18,6 +18,7 @@
#include <limits.h>
#include <sys/param.h>
+#include <string.h>
#include <glib/gprintf.h>
@@ -77,15 +78,20 @@ on_handle_set_icon_name(Hostname1 *hn1_passed_interf,
const gchar *
our_get_hostname() {
- gchar *hostname_buf;
+ gchar *hostname_buf, *ret;
+ size_t hostname_divider;
hostname_buf = (gchar*) g_malloc0(MAXHOSTNAMELEN);
+ ret = (gchar*) g_malloc0(MAXHOSTNAMELEN);
g_ptr_array_add(hostnamed_freeable, hostname_buf);
+ g_ptr_array_add(hostnamed_freeable, ret);
if(gethostname(hostname_buf, MAXHOSTNAMELEN))
return "";
- return hostname_buf;
+ hostname_divider = strcspn(hostname_buf, ".");
+
+ return strncpy(ret, hostname_buf, hostname_divider);
}
const gchar *
@@ -213,9 +219,9 @@ int main() {
guint bus_descriptor;
GMainLoop *hostnamed_loop;
- hostnamed_loop = g_main_loop_new(NULL, TRUE);
- /* config stuff here */
+ hostnamed_loop = g_main_loop_new(NULL, TRUE);
+ hostnamed_freeable = g_ptr_array_new();
bus_descriptor = g_bus_own_name(G_BUS_TYPE_SYSTEM,
"org.freedesktop.hostname1",