From e5078110436f4461a1f70c364bab84e8b82b155d Mon Sep 17 00:00:00 2001 From: fatbob313 Date: Tue, 19 Jan 2010 17:05:48 +0000 Subject: [PATCH] Add OS and machine info retrieval via uname --- src/client.c | 7 ++++--- src/main.c | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/client.c b/src/client.c index 26daca8..58ffb25 100644 --- a/src/client.c +++ b/src/client.c @@ -42,6 +42,8 @@ #include "version.h" #include "voicetarget.h" +extern char system_string[], version_string[]; + static int Client_read(client_t *client); static int Client_write(client_t *client); static int Client_send_udp(client_t *client, uint8_t *data, int len); @@ -199,9 +201,8 @@ int Client_add(int fd, struct sockaddr_in *remote) sendmsg->payload.version->has_version = true; sendmsg->payload.version->version = PROTOCOL_VERSION; sendmsg->payload.version->release = strdup(UMURMUR_VERSION); - /* XXX - set OS to something relevant? */ - /* sendmsg->payload.version->os = strdup("Linux/OpenWRT"); */ - + sendmsg->payload.version->os = strdup(system_string); + sendmsg->payload.version->os_version = strdup(version_string); Client_send_message(newclient, sendmsg); return 0; diff --git a/src/main.c b/src/main.c index 6d48f6e..cce178a 100644 --- a/src/main.c +++ b/src/main.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -47,6 +48,8 @@ #include "conf.h" #include "version.h" +char system_string[64], version_string[64]; + void lockfile(const char *pidfile) { int lfp; @@ -134,6 +137,7 @@ int main(int argc, char **argv) bool_t realtime = false; char *conffile = NULL, *pidfile = NULL; int c; + struct utsname utsbuf; /* Arguments */ while ((c = getopt(argc, argv, "drp:c:h")) != EOF) { @@ -180,7 +184,17 @@ int main(int argc, char **argv) signal(SIGTTIN, SIG_IGN); signal(SIGHUP, signal_handler); /* catch hangup signal */ signal(SIGTERM, signal_handler); /* catch kill signal */ - + + /* Build system string */ + if (uname(&utsbuf) == 0) { + snprintf(system_string, 64, "%s %s", utsbuf.sysname, utsbuf.machine); + snprintf(version_string, 64, "%s", utsbuf.release); + } + else { + snprintf(system_string, 64, "unknown unknown"); + snprintf(version_string, 64, "unknown"); + } + /* Initializing */ SSL_init(); Chan_init(); -- 2.30.2