summaryrefslogtreecommitdiff
path: root/src/daemon/version.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/daemon/version.c')
-rw-r--r--src/daemon/version.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/daemon/version.c b/src/daemon/version.c
index e6cdb7ff..5c95cad7 100644
--- a/src/daemon/version.c
+++ b/src/daemon/version.c
@@ -23,18 +23,25 @@
#include <glibtop/error.h>
#include <glibtop/version.h>
+#include <sys/utsname.h>
+
void
glibtop_send_version (glibtop *server, int fd)
{
- char buffer [BUFSIZ];
+ char buffer [BUFSIZ+10];
+ struct utsname uts;
size_t size;
- sprintf (buffer, LIBGTOP_VERSION_STRING,
- LIBGTOP_VERSION, LIBGTOP_SERVER_VERSION,
- sizeof (glibtop_command),
- sizeof (glibtop_response),
- sizeof (glibtop_union),
- sizeof (glibtop_sysdeps));
+ if (uname (&uts))
+ glibtop_error_io_r (server, "uname");
+
+ snprintf (buffer, BUFSIZ, LIBGTOP_VERSION_STRING,
+ LIBGTOP_VERSION, LIBGTOP_SERVER_VERSION,
+ sizeof (glibtop_command),
+ sizeof (glibtop_response),
+ sizeof (glibtop_union),
+ sizeof (glibtop_sysdeps),
+ uts.sysname, uts.release, uts.machine);
size = strlen (buffer) + 1;