insert IMV/IMC before providing BindFunction
authorAndreas Steffen <andreas.steffen@strongswan.org>
Sun, 7 Nov 2010 23:29:44 +0000 (00:29 +0100)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Tue, 9 Nov 2010 19:43:50 +0000 (20:43 +0100)
src/libcharon/plugins/tnc_imc/tnc_imc.c
src/libcharon/plugins/tnc_imc/tnc_imc_manager.c
src/libcharon/plugins/tnc_imv/tnc_imv.c
src/libcharon/plugins/tnc_imv/tnc_imv_manager.c
src/libcharon/tnc/imc/imc.h

index 7c1b7b5..7664b61 100644 (file)
@@ -88,6 +88,7 @@ METHOD(imc_t, set_message_types, void,
                this->supported_types = malloc(size);
                memcpy(this->supported_types, supported_types, size);
        }
+       DBG2(DBG_TNC, "IMC %u supports %u message types", this->id, type_count);
 }
 
 METHOD(imc_t, type_supported, bool,
index f1d0f21..da10274 100644 (file)
@@ -59,6 +59,9 @@ METHOD(imc_manager_t, add, bool,
                                           imc->get_name(imc));
                return FALSE;
        }
+       this->imcs->insert_last(this->imcs, imc);
+       this->next_imc_id++;
+
     if (imc->provide_bind_function(imc->get_id(imc), TNC_TNCC_BindFunction)
                        != TNC_RESULT_SUCCESS)
        {
@@ -66,8 +69,6 @@ METHOD(imc_manager_t, add, bool,
                                           imc->get_name(imc));
                return FALSE;
        }
-       this->imcs->insert_last(this->imcs, imc);
-       this->next_imc_id++;
 
        return TRUE;
 }
index 2eca072..a685b91 100644 (file)
@@ -88,6 +88,7 @@ METHOD(imv_t, set_message_types, void,
                this->supported_types = malloc(size);
                memcpy(this->supported_types, supported_types, size);
        }
+       DBG2(DBG_TNC, "IMV %u supports %u message types", this->id, type_count);
 }
 
 METHOD(imv_t, type_supported, bool,
index 08bc093..4beaccc 100644 (file)
@@ -59,6 +59,9 @@ METHOD(imv_manager_t, add, bool,
                                           imv->get_name(imv));
                return FALSE;
        }
+       this->imvs->insert_last(this->imvs, imv);
+       this->next_imv_id++;
+
     if (imv->provide_bind_function(imv->get_id(imv), TNC_TNCS_BindFunction)
                        != TNC_RESULT_SUCCESS)
        {
@@ -66,8 +69,6 @@ METHOD(imv_manager_t, add, bool,
                                           imv->get_name(imv));
                return FALSE;
        }
-       this->imvs->insert_last(this->imvs, imv);
-       this->next_imv_id++;
        return TRUE;
 }
 
index 8d3f4af..affaadd 100644 (file)
@@ -24,7 +24,7 @@
 #include <tnc/tncifimc.h>
 #include <library.h>
 
-/typedef struct imc_t imc_t;
+typedef struct imc_t imc_t;
 
 /**
  * Controls a single Integrity Measurement Collector (IMC)