minix/external/bsd/bind/dist/contrib/dlz/modules/bdbhpt
David van Moolenbroek 00b67f09dd Import NetBSD named(8)
Also known as ISC bind.  This import adds utilities such as host(1),
dig(1), and nslookup(1), as well as many other tools and libraries.

Change-Id: I035ca46e64f1965d57019e773f4ff0ef035e4aa3
2017-03-21 22:00:06 +00:00
..
testing Import NetBSD named(8) 2017-03-21 22:00:06 +00:00
dlz_bdbhpt_dynamic.c Import NetBSD named(8) 2017-03-21 22:00:06 +00:00
Makefile Import NetBSD named(8) 2017-03-21 22:00:06 +00:00
README.md Import NetBSD named(8) 2017-03-21 22:00:06 +00:00

dlz-bdbhpt-dynamic

A Bind 9 Dynamically Loadable BerkeleyDB High Performance Text Driver

Summary

This is an attempt to port the original Bind 9 DLZ bdbhpt_driver.c as found in the Bind 9 source tree into the new DLZ dlopen driver API. The goals of this project are as follows:

  • Provide DLZ facilities to OEM-supported Bind distributions
  • Support both v1 (Bind 9.8) and v2 (Bind 9.9) of the dlopen() DLZ API

Requirements

You will need the following:

  • Bind 9.8 or higher with the DLZ dlopen driver enabled
  • BerkeleyDB libraries and header files
  • A C compiler

This distribution have been successfully installed and tested on Ubuntu 12.04.

Installation

With the above requirements satisfied perform the following steps:

  1. Ensure the symlink for dlz_minimal.h points at the correct header file matching your Bind version
  2. Run: make
  3. Run: sudo make install # this will install dlz_bdbhpt_dynamic.so into /usr/lib/bind9/
  4. Add a DLZ statement similar to the example below into your Bind configuration
  5. Ensure your BerkeleyDB home-directory exists and can be written to by the bind user
  6. Use the included testing/bdbhpt-populate.pl script to provide some data for initial testing

Usage

Example usage is as follows:

dlz "bdbhpt_dynamic" {
        database "dlopen /usr/lib/bind9/dlz_bdbhpt_dynamic.so T /var/cache/bind/dlz dnsdata.db";
};

The arguments for the "database" line above are as follows:

  1. dlopen - Use the dlopen DLZ driver to dynamically load our compiled driver
  2. The full path to your built dlz_bdbhpt_dynamic.so
  3. Single character specifying the mode to open your BerkeleyDB environment:
    • T - Transactional Mode - Highest safety, lowest speed.
    • C - Concurrent Mode - Lower safety (no rollback), higher speed.
    • P - Private Mode - No interprocess communication & no locking. Lowest safety, highest speed.
  4. Directory containing your BerkeleyDB - this is where the BerkeleyDB environment will be created.
  5. Filename within this directory containing your BerkeleyDB tables.

A copy of the above Bind configuration is included within example/dlz.conf.

Author

The person responsible for this is:

Mark Goldfinch g@g.org.nz

The code is maintained at:

https://github.com/goldie80/dlz-bdbhpt-dynamic

There is very little in the way of original code in this work, however, original license conditions from both bdbhpt_driver.c and dlz_example.c are maintained in the dlz_bdbhpt_dynamic.c.