Previously, if our serial was 0, and new serial was
bigger than 2^31, then we assumed that the old serial
was larger than new serial, preventing zone from
being transferred. After this change, 0 is treated
specially in the comparison.
continue;
uint32_t theirserial = ssr.d_freshness[di.id].theirSerial, ourserial = di.serial;
- if(rfc1982LessThan(theirserial, ourserial)) {
+ if(rfc1982LessThan(theirserial, ourserial) && ourserial != 0) {
L<<Logger::Error<<"Domain '"<<di.zone<<"' more recent than master, our serial " << ourserial << " > their serial "<< theirserial << endl;
di.backend->setFresh(di.id);
}