projects
/
umurmur.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
46d18f6
)
Add OS and machine info retrieval via uname
author
fatbob313
<martin@fatbob.nu>
Tue, 19 Jan 2010 17:05:48 +0000
(17:05 +0000)
committer
fatbob313
<martin@fatbob.nu>
Tue, 19 Jan 2010 17:05:48 +0000
(17:05 +0000)
src/client.c
patch
|
blob
|
history
src/main.c
patch
|
blob
|
history
diff --git
a/src/client.c
b/src/client.c
index 26daca8cd58df0ae33d87b1f822528018df7cf95..58ffb2514294f3656f5567687a9e4b63fdad70f1 100644
(file)
--- a/
src/client.c
+++ b/
src/client.c
@@
-42,6
+42,8
@@
#include "version.h"
#include "voicetarget.h"
#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);
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);
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;
Client_send_message(newclient, sendmsg);
return 0;
diff --git
a/src/main.c
b/src/main.c
index 6d48f6e4656fd01544a6cb725c612e582237ca23..cce178a1ffe458d90de0efd9fcb64aabc4ce580a 100644
(file)
--- a/
src/main.c
+++ b/
src/main.c
@@
-34,6
+34,7
@@
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
+#include <sys/utsname.h>
#include <fcntl.h>
#include <signal.h>
#include <sched.h>
#include <fcntl.h>
#include <signal.h>
#include <sched.h>
@@
-47,6
+48,8
@@
#include "conf.h"
#include "version.h"
#include "conf.h"
#include "version.h"
+char system_string[64], version_string[64];
+
void lockfile(const char *pidfile)
{
int lfp;
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;
bool_t realtime = false;
char *conffile = NULL, *pidfile = NULL;
int c;
+ struct utsname utsbuf;
/* Arguments */
while ((c = getopt(argc, argv, "drp:c:h")) != EOF) {
/* 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 */
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();
/* Initializing */
SSL_init();
Chan_init();