Return-Path: bind-workers-request
Received: by gw.home.vix.com id AA13481; Tue, 15 Feb 94 14:40:33 -0800
Received: by gw.home.vix.com id AA13469; Tue, 15 Feb 94 14:40:25 -0800
Received: from mundamutti.cs.mu.OZ.AU by munnari.oz.au with SMTP (5.83--+1.3.1+0.50)
	id AA21318; Wed, 16 Feb 1994 06:54:09 +1100 (from kre@munnari.OZ.AU)
To: Piete Brooks <Piete.Brooks@cl.cam.ac.uk>
Cc: bind-workers@vix.com, M Graham Dineley <mgd@kaa.ee.umist.ac.uk>
Subject: Re: Suggested HACK to allow recovery after SOA typo ... 
In-Reply-To: Your message of "Tue, 15 Feb 1994 18:57:53 -0000."
             <"swan.cl.cam.:051210:940215185815"@cl.cam.ac.uk> 
Date: Wed, 16 Feb 1994 06:54:09 +1100
Message-Id: <5765.761342049@munnari.OZ.AU>
From: Robert Elz <kre@munnari.OZ.AU>

This is unnecessary with 4.9.2 (and beyond).   It would take
two steps to do - one to set the serial number to 0, then
another to set the serial number back to its proper value.

In two steps its always possible to reset the serial number
to a sane value with 4.9.2, and if you really messed it up
it may be possible to do it in one.   This uses the (finally RFC
compliant) wrapping serial numbers, you simply increment the
bad serial number by the lesser of 2^31 - 1 and the difference
between what you want it to be and the current value.

If that didn't give you the value you want, you increment one
more time by the difference between what you want it to be and
what it then is (which will be less than 2^31 - 1 except in the
one pathological case where the "fix" you wanted was to
decrement the serial number by one - which isn't worth doing,
but could be done in one extra step).

Of course this only works where yyour secondaries are running
4.9.2, but so would any other hack scheme invented.

It is true that this involves some mod 2^32 arithmetic, but
its not that difficult.

kre
