Ack,
Mathi.

----- giang.t...@dektech.com.au wrote:

> osaf/services/saf/logsv/lgs/lgs_imm.c |  91
> +++++++++++++---------------------
>  1 files changed, 34 insertions(+), 57 deletions(-)
> 
> 
> Remove checking that peer version is equal or bigger than version 3
> before allow changes in mailbox limits.
> 
> diff --git a/osaf/services/saf/logsv/lgs/lgs_imm.c
> b/osaf/services/saf/logsv/lgs/lgs_imm.c
> --- a/osaf/services/saf/logsv/lgs/lgs_imm.c
> +++ b/osaf/services/saf/logsv/lgs/lgs_imm.c
> @@ -551,9 +551,7 @@ static SaAisErrorT config_ccb_completed_
>   * =================================================
>   */
>  
> -/* Attributes that can be modified if both nodes support
> LGS_MBCSV_VERSION_3
> - */
> -struct vattr_v3_t {
> +struct vattr_t {
>       /* true if any of the attributes has been changed */
>       bool validate_flag;
>       SaUint32T logStreamSystemHighLimit;
> @@ -573,27 +571,24 @@ struct vattr_v3_t {
>   * the correct values.
>   * See lgs_config for validation functions
>   * 
> - * @param vattr_v3 [in] struct with attributes to validate
> + * @param vattr[in] struct with attributes to validate
>   * @param err_str [out] char vector of 256 bytes to return a string.
>   * @return error code
>   */
> -static SaAisErrorT validate_mailbox_limits(struct vattr_v3_t
> vattr_v3, char *err_str)
> +static SaAisErrorT validate_mailbox_limits(struct vattr_t vattr, char
> *err_str)
>  {    
>       SaUint32T value32_high = 0;
>       SaUint32T value32_low = 0;
>       SaAisErrorT ais_rc = SA_AIS_OK;
>       int rc = 0;
> -     bool v3_changed_flag = false; /* True if changes allowed only if V3
> supported */
>       
>       TRACE_ENTER();
>       
> -     /* Validate attributes that can be modified if both nodes support
> -      * LGS_MBCSV_VERSION_3
> -      */
> -     if (vattr_v3.logStreamSystemHighLimit_changed) {
> -             value32_high = vattr_v3.logStreamSystemHighLimit;
> -             if (vattr_v3.logStreamSystemLowLimit_changed) {
> -                     value32_low = vattr_v3.logStreamSystemLowLimit;
> +     /* Validate attributes that can be modified */
> +     if (vattr.logStreamSystemHighLimit_changed) {
> +             value32_high = vattr.logStreamSystemHighLimit;
> +             if (vattr.logStreamSystemLowLimit_changed) {
> +                     value32_low = vattr.logStreamSystemLowLimit;
>               } else {
>                       value32_low = *(SaUint32T *) lgs_cfg_get(
>                                       LGS_IMM_LOG_STREAM_SYSTEM_LOW_LIMIT);
> @@ -605,14 +600,12 @@ static SaAisErrorT validate_mailbox_limi
>                       snprintf(err_str, 256, "HIGH limit < LOW limit");
>                       goto done;
>               }
> -             
> -             v3_changed_flag = true;
>       }
>       
> -     if (vattr_v3.logStreamSystemLowLimit_changed) {
> -             value32_low = vattr_v3.logStreamSystemLowLimit;
> -             if (vattr_v3.logStreamSystemHighLimit_changed) {
> -                     value32_high = vattr_v3.logStreamSystemHighLimit;
> +     if (vattr.logStreamSystemLowLimit_changed) {
> +             value32_low = vattr.logStreamSystemLowLimit;
> +             if (vattr.logStreamSystemHighLimit_changed) {
> +                     value32_high = vattr.logStreamSystemHighLimit;
>               } else {
>                       value32_high = *(SaUint32T *) lgs_cfg_get(
>                                       LGS_IMM_LOG_STREAM_SYSTEM_HIGH_LIMIT);
> @@ -624,14 +617,12 @@ static SaAisErrorT validate_mailbox_limi
>                       snprintf(err_str, 256, "HIGH limit < LOW limit");
>                       goto done;
>               }
> -             
> -             v3_changed_flag = true;
>       }
>       
> -     if (vattr_v3.logStreamAppHighLimit_changed) {
> -             value32_high = vattr_v3.logStreamAppHighLimit;
> -             if (vattr_v3.logStreamAppLowLimit_changed) {
> -                     value32_low = vattr_v3.logStreamAppLowLimit;
> +     if (vattr.logStreamAppHighLimit_changed) {
> +             value32_high = vattr.logStreamAppHighLimit;
> +             if (vattr.logStreamAppLowLimit_changed) {
> +                     value32_low = vattr.logStreamAppLowLimit;
>               } else {
>                       value32_low = *(SaUint32T *) lgs_cfg_get(
>                                       LGS_IMM_LOG_STREAM_APP_LOW_LIMIT);
> @@ -643,14 +634,12 @@ static SaAisErrorT validate_mailbox_limi
>                       snprintf(err_str, 256, "HIGH limit < LOW limit");
>                       goto done;
>               }
> -             
> -             v3_changed_flag = true;
>       }
>       
> -     if (vattr_v3.logStreamAppLowLimit_changed) {
> -             value32_low = vattr_v3.logStreamAppLowLimit;
> -             if (vattr_v3.logStreamAppHighLimit_changed) {
> -                     value32_high = vattr_v3.logStreamAppHighLimit;
> +     if (vattr.logStreamAppLowLimit_changed) {
> +             value32_low = vattr.logStreamAppLowLimit;
> +             if (vattr.logStreamAppHighLimit_changed) {
> +                     value32_high = vattr.logStreamAppHighLimit;
>               } else {
>                       value32_high = *(SaUint32T *) lgs_cfg_get(
>                                       LGS_IMM_LOG_STREAM_APP_HIGH_LIMIT);
> @@ -662,20 +651,8 @@ static SaAisErrorT validate_mailbox_limi
>                       snprintf(err_str, 256, "HIGH limit < LOW limit");
>                       goto done;
>               }
> -             
> -             v3_changed_flag = true;
>       }
>       
> -     /* Check if other node supports v3 if any v3 attribute has changed
> */
> -     if (v3_changed_flag == true) {
> -             if (lgs_is_peer_v3() == false) {
> -                     /* Not supported by standby. Configuration change not 
> allowed */
> -                     ais_rc = SA_AIS_ERR_FAILED_OPERATION;
> -                     snprintf(err_str, 256, "Not supported by standby node");
> -                     goto done;
> -             }
> -     }
> -
>       done:
>       TRACE_LEAVE2("rc = %d", ais_rc);
>       return ais_rc;
> @@ -697,7 +674,7 @@ static SaAisErrorT config_ccb_completed_
>       int rc = 0;
>       int i = 0;
>       
> -     struct vattr_v3_t vattr_v3 = {
> +     struct vattr_t vattr= {
>               .validate_flag = false,
>               .logStreamSystemHighLimit = 0,
>               .logStreamSystemHighLimit_changed = false,
> @@ -783,25 +760,25 @@ static SaAisErrorT config_ccb_completed_
>                       TRACE("maxLogRecordSize: %s is accepted", 
> attribute->attrName);
>                       goto done;
>               } else if (!strcmp(attribute->attrName,
> LOG_STREAM_SYSTEM_HIGH_LIMIT)) {
> -                     vattr_v3.logStreamSystemHighLimit = *((SaUint32T 
> *)value);
> -                     vattr_v3.logStreamSystemHighLimit_changed = true;
> +                     vattr.logStreamSystemHighLimit = *((SaUint32T *)value);
> +                     vattr.logStreamSystemHighLimit_changed = true;
>                       TRACE("%s %s = %d",__FUNCTION__, attribute->attrName,
> -                                     vattr_v3.logStreamSystemHighLimit);
> +                                     vattr.logStreamSystemHighLimit);
>               } else if (!strcmp(attribute->attrName,
> LOG_STREAM_SYSTEM_LOW_LIMIT)) {
> -                     vattr_v3.logStreamSystemLowLimit = *((SaUint32T 
> *)value);
> -                     vattr_v3.logStreamSystemLowLimit_changed = true;
> +                     vattr.logStreamSystemLowLimit = *((SaUint32T *)value);
> +                     vattr.logStreamSystemLowLimit_changed = true;
>                       TRACE("%s %s = %d",__FUNCTION__, attribute->attrName,
> -                                     vattr_v3.logStreamSystemHighLimit);
> +                                     vattr.logStreamSystemHighLimit);
>               } else if (!strcmp(attribute->attrName, 
> LOG_STREAM_APP_HIGH_LIMIT))
> {
> -                     vattr_v3.logStreamAppHighLimit = *((SaUint32T *)value);
> -                     vattr_v3.logStreamAppHighLimit_changed = true;
> +                     vattr.logStreamAppHighLimit = *((SaUint32T *)value);
> +                     vattr.logStreamAppHighLimit_changed = true;
>                       TRACE("%s %s = %d",__FUNCTION__, attribute->attrName,
> -                                     vattr_v3.logStreamSystemHighLimit);
> +                                     vattr.logStreamSystemHighLimit);
>               } else if (!strcmp(attribute->attrName, 
> LOG_STREAM_APP_LOW_LIMIT))
> {
> -                     vattr_v3.logStreamAppLowLimit = *((SaUint32T *)value);
> -                     vattr_v3.logStreamAppLowLimit_changed = true;
> +                     vattr.logStreamAppLowLimit = *((SaUint32T *)value);
> +                     vattr.logStreamAppLowLimit_changed = true;
>                       TRACE("%s %s = %d",__FUNCTION__, attribute->attrName,
> -                                     vattr_v3.logStreamSystemHighLimit);
> +                                     vattr.logStreamSystemHighLimit);
>               } else if (!strcmp(attribute->attrName,
> LOG_MAX_APPLICATION_STREAMS)) {
>                       report_oi_error(immOiHandle, opdata->ccbId,
>                                       "%s cannot be changed", 
> attribute->attrName);
> @@ -833,7 +810,7 @@ static SaAisErrorT config_ccb_completed_
>               attrMod = opdata->param.modify.attrMods[i++];
>       }
>       
> -     ais_rc = validate_mailbox_limits(vattr_v3, oi_err_str);
> +     ais_rc = validate_mailbox_limits(vattr, oi_err_str);
>       if (ais_rc != SA_AIS_OK) {
>               TRACE("Reporting oi error \"%s\"", oi_err_str);
>               report_oi_error(immOiHandle, opdata->ccbId, "%s", oi_err_str);

------------------------------------------------------------------------------
Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to