aboutsummaryrefslogtreecommitdiffstats
path: root/src
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
commit8f3d38b103f8c972de7ab065ba1d2ee1621702dd (patch)
treeb6dd641cc992f141541731958b1f92d5252be21b /src
parenta3041e78faacff1687bafd29d9c79ec635924c4b (diff)
downloadsystembsd-8f3d38b103f8c972de7ab065ba1d2ee1621702dd.tar
systembsd-8f3d38b103f8c972de7ab065ba1d2ee1621702dd.tar.gz
systembsd-8f3d38b103f8c972de7ab065ba1d2ee1621702dd.tar.bz2
systembsd-8f3d38b103f8c972de7ab065ba1d2ee1621702dd.tar.lz
systembsd-8f3d38b103f8c972de7ab065ba1d2ee1621702dd.tar.xz
systembsd-8f3d38b103f8c972de7ab065ba1d2ee1621702dd.tar.zst
systembsd-8f3d38b103f8c972de7ab065ba1d2ee1621702dd.zip
hostname1 now returns hostname minus domain info
also initializes pointer array properly, no more GLib warnings
Diffstat (limited to 'src')
-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",