Finally Converting From Bind 8 -> Bind 9

Tim Daneliuk tundra at tundraware.com
Fri Jul 13 20:11:55 UTC 2007


Alex Zbyslaw wrote:
> Tim Daneliuk wrote:
> 
>> 2) Better still is there some sort of "include" mechanism where I could
>>    keep a flat file of public host information for use by db.external,
>>    but include it into db.internal.
> 
> I don't think there is, but let someone who uses bind more than I do 
> give a definitive on that :-)
> 
> What you *can* do, irrespective of bind version, is to have two files 
> which you pre-process with m4, and have a third file which m4 includes 
> on both the others.
> 
> So you start with:
> 
>    internal.M4 which includes "shared"
>    external.M4 which also includes "shared"
>    shared which gets included in the other two.
> 
> Then m4 internal.M4 > internal and m4 external.M4 -> external.
> 
> Bind then loads internal and external.

A reasonable and very Unix-ish solution, certainly.  Though, I think
the subsequent post on this thread regarding $INCLUDE is probably more
elegant ;)

> 
> Alternatively you could start with one M4 file which uses lots of ifdefs 
> for the non-shared portions.  The create internal and external by 
> specifying different definitions to m4.  e.g. m4 -D _TYPE=EXTERNAL or m4 
> -D _TYPE=INTERNAL.
> 
> For a problem with small differences between two files, this is a better 
> solution, but not what I'd do in this case.

Me either - conditional content gets clumsy to maintain in a big hurry.

> 
> Whole process can be easily controlled with a Makefile (including any 
> restarts).
> 
> --Alex
> 
> 


-- 
----------------------------------------------------------------------------
Tim Daneliuk     tundra at tundraware.com
PGP Key:         http://www.tundraware.com/PGP/



More information about the freebsd-questions mailing list