diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-06-05 12:27:20 +0200 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-06-05 12:27:20 +0200 |
commit | a82ff71cd77eaed5c65a7a097997409435ee8bb5 (patch) | |
tree | b21e5b5eebd2f9e55c2399d67adce2ff8aaf35ea | |
parent | 2f7f248f1108aeb2d5fe5a7592329b1c1e41ad47 (diff) | |
download | strongswan-a82ff71cd77eaed5c65a7a097997409435ee8bb5.tar.bz2 strongswan-a82ff71cd77eaed5c65a7a097997409435ee8bb5.tar.xz |
map action recommendation codes to PB access recommendation codes
-rw-r--r-- | src/libcharon/plugins/tnccs_20/tnccs_20.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/libcharon/plugins/tnccs_20/tnccs_20.c b/src/libcharon/plugins/tnccs_20/tnccs_20.c index df3fe8504..849789252 100644 --- a/src/libcharon/plugins/tnccs_20/tnccs_20.c +++ b/src/libcharon/plugins/tnccs_20/tnccs_20.c @@ -461,6 +461,7 @@ static void check_and_build_recommendation(private_tnccs_20_t *this) chunk_t reason, language; enumerator_t *enumerator; pb_tnc_msg_t *msg; + pb_access_recommendation_code_t pb_rec; if (!this->recs->have_recommendation(this->recs, &rec, &eval)) { @@ -474,10 +475,22 @@ static void check_and_build_recommendation(private_tnccs_20_t *this) this->batch->add_msg(this->batch, msg); /** - * IMV Action Recommendation and PB Access Recommendation codes - * are shifted by one. + * Map IMV Action Recommendation codes to PB Access Recommendation codes */ - msg = pb_access_recommendation_msg_create(rec + 1); + switch (rec) + { + case TNC_IMV_ACTION_RECOMMENDATION_ALLOW: + pb_rec = PB_REC_ACCESS_ALLOWED; + break; + case TNC_IMV_ACTION_RECOMMENDATION_ISOLATE: + pb_rec = PB_REC_QUARANTINED; + break; + case TNC_IMV_ACTION_RECOMMENDATION_NO_ACCESS: + case TNC_IMV_ACTION_RECOMMENDATION_NO_RECOMMENDATION: + default: + pb_rec = PB_REC_ACCESS_DENIED; + } + msg = pb_access_recommendation_msg_create(pb_rec); this->batch->add_msg(this->batch, msg); enumerator = this->recs->create_reason_enumerator(this->recs); |