Files
bind9/contrib/dlz/modules/bdbhpt
Ondřej Surý 58bd26b6cf Update the copyright information in all files in the repository
This commit converts the license handling to adhere to the REUSE
specification.  It specifically:

1. Adds used licnses to LICENSES/ directory

2. Add "isc" template for adding the copyright boilerplate

3. Changes all source files to include copyright and SPDX license
   header, this includes all the C sources, documentation, zone files,
   configuration files.  There are notes in the doc/dev/copyrights file
   on how to add correct headers to the new files.

4. Handle the rest that can't be modified via .reuse/dep5 file.  The
   binary (or otherwise unmodifiable) files could have license places
   next to them in <foo>.license file, but this would lead to cluttered
   repository and most of the files handled in the .reuse/dep5 file are
   system test files.
2022-01-11 09:05:02 +01: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.