Merge Nameserver Server
See the commits. On top of the actual merge a few functions were pushed around, namely UPDATE-specific stuff from name-server/zones and few others. APIs were updated so the server is needed in fewer functions, zone reconfiguration was split, zone loading timers are now handled in a better way.
More about the timers:
- Before zone loading begins, zone timers are frozen
- When zone is created, we initialize the timers (but don't schedule them)
- Zone may be signed during reload and this causes planning of of the DNSSEC timer, but timers may be planned only AFTER zone loading is complete and new zone database is published. To solve this, I remember the
refresh_at
in the zone structure and use it for scheduling later (this is not ideal, and I'd like to merge this code with UPDATE signing which seems similar). - After the zones are loaded and zone database is published, zone events are rescheduled.
- This fixes a few random bugs where zone event was triggered before the database was loaded and the operations were carried on the old zone.