summaryrefslogtreecommitdiff
path: root/src/system.c
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2014-09-17 17:53:13 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2014-09-17 17:53:13 +0200
commitf8a83ea88eacf744f9bde5e3f96e29ad627ec2f5 (patch)
treee97206ee03ff9c78f81ba635a2ec9701c55b7241 /src/system.c
parent5979f05b51f6f6c9d1f582d405cc6ac787651f3e (diff)
downloadbiruda-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.c23
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
+}
+