CloudFlare Dynamic DNS fails when domain name uses a Second Level TLD
When using Dynamic DNS with CloudFlare if the domain name used has a second level TLD such as .co.uk the update will fail.
The cause is the following line within /etc/inc/dyndns.class (About line number 733)
$bottom_host_name = $host_names[count($host_names)-2] . "." . $host_names[count($host_names)-1];
This assumes that the zone name for CloudFlare will always be the highest two components of the host name.