store the long and excl flags in the connection state
[strongswan.git] / src / libpts / plugins / imc_attestation / imc_attestation_state.c
index d900224..72a55f6 100644 (file)
@@ -41,6 +41,16 @@ struct private_imc_attestation_state_t {
        TNC_ConnectionState state;
 
        /**
+        * Does the TNCCS connection support long message types?
+        */
+       bool has_long;
+
+       /**
+        * Does the TNCCS connection support exclusive delivery?
+        */
+       bool has_excl;
+
+       /**
         * PTS object
         */
        pts_t *pts;
@@ -58,6 +68,25 @@ METHOD(imc_state_t, get_connection_id, TNC_ConnectionID,
        return this->connection_id;
 }
 
+METHOD(imc_state_t, has_long, bool,
+       private_imc_attestation_state_t *this)
+{
+       return this->has_long;
+}
+
+METHOD(imc_state_t, has_excl, bool,
+       private_imc_attestation_state_t *this)
+{
+       return this->has_excl;
+}
+
+METHOD(imc_state_t, set_flags, void,
+       private_imc_attestation_state_t *this, bool has_long, bool has_excl)
+{
+       this->has_long = has_long;
+       this->has_excl = has_excl;
+}
+
 METHOD(imc_state_t, change_state, void,
        private_imc_attestation_state_t *this, TNC_ConnectionState new_state)
 {
@@ -103,6 +132,9 @@ imc_state_t *imc_attestation_state_create(TNC_ConnectionID connection_id)
                .public = {
                        .interface = {
                                .get_connection_id = _get_connection_id,
+                               .has_long = _has_long,
+                               .has_excl = _has_excl,
+                               .set_flags = _set_flags,
                                .change_state = _change_state,
                                .destroy = _destroy,
                        },