Module config update doesn't work as expected #89
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
How to reproduce:
Build Flexisip with SNMP support
snmpset -m FLEXISIP-MIB -v 2c -c private localhost FLEXISIP-MIB::flexisipMIB.flexisip.module..0 s
Verify that log "Congiguration of module changed for key...." but module is not reloaded
Root cause:
bool dirtyConfig=false is local variable.
When doConfigStateChanged is called twice with Changed->Committed - old value of local variable 'dirtyConfig' is destroyed
Fix:
Make dirtyConfig flag as a Module class member.
This is the easiest but not perfect solution as it affects all 'derived' classes (need to recompile all modules)
Anyway I don't see acceptable fix for this without affecting public header "module.hh"
Better suggestions:
To avoid adding members to public classes, I'd recommend to use 'private implementation' approach for storing all 'Module' internals