diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2012-10-18 22:33:26 +0200 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2012-10-18 22:33:26 +0200 |
commit | a9c9414d5840e6c2d15e3ecc2e2fe8b662fe46a3 (patch) | |
tree | 1f1cfce81014ba902cf030025ed80b145056d6a3 /src/libimcv/os_info/os_info.c | |
parent | ef315c5a1c37876617fbc03f2d5de80061f43950 (diff) | |
download | strongswan-a9c9414d5840e6c2d15e3ecc2e2fe8b662fe46a3.tar.bz2 strongswan-a9c9414d5840e6c2d15e3ecc2e2fe8b662fe46a3.tar.xz |
implemented IETF Numeric Version attribute
Diffstat (limited to 'src/libimcv/os_info/os_info.c')
-rw-r--r-- | src/libimcv/os_info/os_info.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libimcv/os_info/os_info.c b/src/libimcv/os_info/os_info.c index fd7d6ce48..576d27c68 100644 --- a/src/libimcv/os_info/os_info.c +++ b/src/libimcv/os_info/os_info.c @@ -58,6 +58,22 @@ METHOD(os_info_t, get_name, chunk_t, return this->name; } +METHOD(os_info_t, get_numeric_version, void, + private_os_info_t *this, u_int32_t *major, u_int32_t *minor) +{ + u_char *pos; + + if (major) + { + *major = atol(this->version.ptr); + } + pos = memchr(this->version.ptr, '.', this->version.len); + if (minor) + { + *minor = pos ? atol(pos + 1) : 0; + } +} + METHOD(os_info_t, get_version, chunk_t, private_os_info_t *this) { @@ -367,6 +383,7 @@ os_info_t *os_info_create(void) INIT(this, .public = { .get_name = _get_name, + .get_numeric_version = _get_numeric_version, .get_version = _get_version, .get_fwd_status = _get_fwd_status, .get_uptime = _get_uptime, |