osaf/services/saf/amf/amfd/include/su.h |   2 +-
 osaf/services/saf/amf/amfd/su.cc        |  43 ++++++++++++++++++--------------
 2 files changed, 25 insertions(+), 20 deletions(-)


saAmfSUMaintenanceCampaign was not initialized properly thus causing SMF
campaigns to fail. While fixing that we align to "rule":
http://www.parashift.com/c++-faq/init-lists.html and initialize attributes
using the initialization list rather than assignment.

diff --git a/osaf/services/saf/amf/amfd/include/su.h 
b/osaf/services/saf/amf/amfd/include/su.h
--- a/osaf/services/saf/amf/amfd/include/su.h
+++ b/osaf/services/saf/amf/amfd/include/su.h
@@ -93,7 +93,7 @@ class AVD_SU {
        AVD_SU *su_list_su_type_next;
 
        AVD_SU() {};
-       AVD_SU(const SaNameT *dn);
+       explicit AVD_SU(const SaNameT *dn);
        ~AVD_SU() {};
        void set_su_failover(bool value);
        void dec_curr_stdby_si();
diff --git a/osaf/services/saf/amf/amfd/su.cc b/osaf/services/saf/amf/amfd/su.cc
--- a/osaf/services/saf/amf/amfd/su.cc
+++ b/osaf/services/saf/amf/amfd/su.cc
@@ -32,27 +32,32 @@
 
 AmfDb<AVD_SU> *su_db = NULL;
 
-AVD_SU::AVD_SU(const SaNameT *dn) {
+AVD_SU::AVD_SU(const SaNameT *dn):
+               saAmfSURank(0),
+               saAmfSUFailover(false),
+               saAmfSUFailover_configured(false),
+               saAmfSUPreInstantiable(static_cast<SaBoolT>(false)),
+               saAmfSUOperState(SA_AMF_OPERATIONAL_DISABLED),
+               saAmfSuReadinessState(SA_AMF_READINESS_OUT_OF_SERVICE),
+               saAmfSUPresenceState(SA_AMF_PRESENCE_UNINSTANTIATED),
+               saAmfSUNumCurrActiveSIs(0),
+               saAmfSUNumCurrStandbySIs(0),
+               saAmfSURestartCount(0),
+               term_state(false),
+               su_switch(AVSV_SI_TOGGLE_STABLE),
+               su_is_external(false),
+               sg_of_su(NULL),
+               su_on_node(NULL),
+               list_of_susi(NULL),
+               list_of_comp(NULL),
+               sg_list_su_next(NULL),
+               avnd_list_su_next(NULL),
+               su_type(NULL),
+               su_list_su_type_next(NULL) {
+
        memcpy(name.value, dn->value, sizeof(name.value));
        name.length = dn->length;
-       saAmfSUFailover = false;
-       term_state = false;
-       su_switch = AVSV_SI_TOGGLE_STABLE;
-       saAmfSUPreInstantiable = static_cast<SaBoolT>(false);
-       saAmfSUOperState = SA_AMF_OPERATIONAL_DISABLED;
-       saAmfSUPresenceState = SA_AMF_PRESENCE_UNINSTANTIATED;
-       saAmfSuReadinessState = SA_AMF_READINESS_OUT_OF_SERVICE;
-       saAmfSUNumCurrActiveSIs = 0;
-       saAmfSUNumCurrStandbySIs = 0;
-       su_is_external = false;
-       sg_of_su = NULL;
-       su_on_node = NULL;
-       list_of_susi = NULL;
-       list_of_comp = NULL;
-       sg_list_su_next = NULL;
-       avnd_list_su_next = NULL;
-       su_type = NULL;
-       su_list_su_type_next = NULL;
+       saAmfSUMaintenanceCampaign.length = 0;
        saAmfSUHostedByNode.length = 0;
        pend_cbk.invocation = 0;
        pend_cbk.admin_oper = (SaAmfAdminOperationIdT)0;

------------------------------------------------------------------------------
Time is money. Stop wasting it! Get your web API in 5 minutes.
www.restlet.com/download
http://p.sf.net/sfu/restlet
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to