diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-01-09 10:00:13 +0100 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2011-01-09 10:00:13 +0100 |
commit | 33749b879c5db7ef28a611fc99e9b7bb5b2d0691 (patch) | |
tree | 818b86598c1403135cd51bbfc9c2c79fa2523035 /src | |
parent | a226307f13cc659a9ba39fa301a7ef7f8b03e35e (diff) | |
download | strongswan-33749b879c5db7ef28a611fc99e9b7bb5b2d0691.tar.bz2 strongswan-33749b879c5db7ef28a611fc99e9b7bb5b2d0691.tar.xz |
send notifyConnectionChange() to IMCs
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/plugins/tnccs_20/tnccs_20.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/libcharon/plugins/tnccs_20/tnccs_20.c b/src/libcharon/plugins/tnccs_20/tnccs_20.c index 3d868c547..ede0e4a04 100644 --- a/src/libcharon/plugins/tnccs_20/tnccs_20.c +++ b/src/libcharon/plugins/tnccs_20/tnccs_20.c @@ -71,7 +71,7 @@ struct private_tnccs_20_t { mutex_t *mutex; /** - * Flag set while processingn + * Flag set while processing */ bool fatal_error; @@ -172,12 +172,26 @@ static void handle_message(private_tnccs_20_t *this, pb_tnc_msg_t *msg) { pb_access_recommendation_msg_t *rec_msg; pb_access_recommendation_code_t rec; + TNC_ConnectionState state = TNC_CONNECTION_STATE_ACCESS_NONE; rec_msg = (pb_access_recommendation_msg_t*)msg; rec = rec_msg->get_access_recommendation(rec_msg); DBG1(DBG_TNC, "PB-TNC access recommendation is '%N'", pb_access_recommendation_code_names, rec); - break; + switch (rec) + { + case PB_REC_ACCESS_ALLOWED: + state = TNC_CONNECTION_STATE_ACCESS_ALLOWED; + break; + case PB_REC_ACCESS_DENIED: + state = TNC_CONNECTION_STATE_ACCESS_NONE; + break; + case PB_REC_QUARANTINED: + state = TNC_CONNECTION_STATE_ACCESS_ISOLATED; + } + charon->imcs->notify_connection_change(charon->imcs, + this->connection_id, state); + break; } case PB_MSG_REMEDIATION_PARAMETERS: { |