Dynamic DNS updates not working on interface failover
I realized that dynamic DNS hostnames are not being updated on interface failover. When manually marking a gateway as "down" everything works fine, but not when the interface actually goes down on its own. I think I tracked down the root cause:
When an interface in a gateway group fails, and this gateway group is tied to a dynamic DNS configuration, rc.dyndns.update is called with the as a parameter.
Within that script, lookup_gateway_interface_by_name() converts the user defined name to the (eg "wan") and this is passed to services_dyndns_configure()
The problem is that services_dyndns_configure() looks designed to accept not the friendly interface name ("friendlyiface") but the real interface name ("interface"), since it ends up comparing to the 'interface' item of return_gateway_groups_array()
In my case, for example, executing:
on the PHP console does not do anything, while
triggers the proper dynamic DNS update.
On the other hand, when you manually mark a gateway as down, the script is set to refresh all configs and that's why it works fine:
Jul 24 17:46:34 check_reload_status Updating all dyndns
I know this has previously worked at some point, so I don't know if this is a regression, or when it occured.