diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2014-09-17 17:53:13 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2014-09-17 17:53:13 +0200 |
commit | f8a83ea88eacf744f9bde5e3f96e29ad627ec2f5 (patch) | |
tree | e97206ee03ff9c78f81ba635a2ec9701c55b7241 /src/system.c | |
parent | 5979f05b51f6f6c9d1f582d405cc6ac787651f3e (diff) | |
download | biruda-f8a83ea88eacf744f9bde5e3f96e29ad627ec2f5.tar.gz biruda-f8a83ea88eacf744f9bde5e3f96e29ad627ec2f5.tar.bz2 |
started to add simple CPE os detection
Diffstat (limited to 'src/system.c')
-rw-r--r-- | src/system.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/system.c b/src/system.c index 0e78976..2751bcf 100644 --- a/src/system.c +++ b/src/system.c @@ -8,7 +8,9 @@ #include <sys/utsname.h> #endif -unsigned int available_cpus( void ) +#include <stdio.h> + +unsigned int system_available_cpus( void ) { #ifdef _WIN32 SYSTEM_INFO info; @@ -29,3 +31,22 @@ unsigned int available_cpus( void ) #endif } +void system_cpe_name( char *name, size_t len ) +{ +#ifdef _WIN32 + /* TODO: test for Windows versions */ + snprintf( name, len, "cpe:/o:microsoft:windows:unknown" ); +#elif defined( linux ) || defined( __linux ) || defined( __linux__ ) + /* TOPO: /etc/os-release */ + struct utsname uts; + uname( &uts ); + snprintf( name, len, "cpe:/o:archlinux:archlinux:unknown" ); +#elif defined( __FreeBSD__ ) + struct utsname uts; + uname( &uts ); + snprintf( name, len, "cpe:/o:%s:%s:%s", uts.sysname, uts.release, uts.version ); +#else + snprintf( name, len, "cpe:/o:unknown:unknown:unknown" ); +#endif +} + |