Make address mapping conditional on having the particular address mapping types enabled.
It might be simpler to understanding the logic for address mapping if each type of mapping were conditional on having the right thing enabled. For example:
- DNS mapping could be conditional on client-side DNS caching (bad idea!) being enabled.
- Automap mapping could be conditional on AutomapHostsOnResolve being enabled.
- TrackExit mapping could be conditional on having TrackHostExits being set.
- MapAddress mappings could be applied only if MapAddress is set.
- MAPADDRESS mappigns could be applied only if the controller MAPADDRESS command has called.
Would this make the logic more clear?