1dlz-bdbhpt-dynamic
2==================
3
4A Bind 9 Dynamically Loadable BerkeleyDB High Performance Text Driver
5
6Summary
7-------
8
9This is an attempt to port the original Bind 9 DLZ bdbhpt_driver.c as
10found in the Bind 9 source tree into the new DLZ dlopen driver API.
11The goals of this project are as follows:
12
13* Provide DLZ facilities to OEM-supported Bind distributions
14* Support both v1 (Bind 9.8) and v2 (Bind 9.9) of the dlopen() DLZ API
15
16Requirements
17------------
18
19You will need the following:
20 * Bind 9.8 or higher with the DLZ dlopen driver enabled
21 * BerkeleyDB libraries and header files
22 * A C compiler
23
24This distribution have been successfully installed and tested on
25Ubuntu 12.04.
26
27Installation
28------------
29
30With the above requirements satisfied perform the following steps:
31
321. Ensure the symlink for dlz_minimal.h points at the correct header
33   file matching your Bind version
342. Run: make
353. Run: sudo make install # this will install dlz_bdbhpt_dynamic.so
36   into /usr/lib/bind9/
374. Add a DLZ statement similar to the example below into your
38   Bind configuration
395. Ensure your BerkeleyDB home-directory exists and can be written to
40   by the bind user
416. Use the included testing/bdbhpt-populate.pl script to provide some
42   data for initial testing
43
44Usage
45-----
46
47Example usage is as follows:
48
49```
50dlz "bdbhpt_dynamic" {
51        database "dlopen /usr/lib/bind9/dlz_bdbhpt_dynamic.so T /var/cache/bind/dlz dnsdata.db";
52};
53```
54
55The arguments for the "database" line above are as follows:
56
571. dlopen - Use the dlopen DLZ driver to dynamically load our compiled
58   driver
592. The full path to your built dlz_bdbhpt_dynamic.so
603. Single character specifying the mode to open your BerkeleyDB
61   environment:
62   * T - Transactional Mode - Highest safety, lowest speed.
63   * C - Concurrent Mode - Lower safety (no rollback), higher speed.
64   * P - Private Mode - No interprocess communication & no locking.
65     Lowest safety, highest speed.
664. Directory containing your BerkeleyDB - this is where the BerkeleyDB
67   environment will be created.
685. Filename within this directory containing your BerkeleyDB tables.
69
70A copy of the above Bind configuration is included within
71example/dlz.conf.
72
73Author
74------
75
76The person responsible for this is:
77
78 Mark Goldfinch <g@g.org.nz>
79
80The code is maintained at:
81
82 https://github.com/goldie80/dlz-bdbhpt-dynamic
83
84There is very little in the way of original code in this work,
85however, original license conditions from both bdbhpt_driver.c and
86dlz_example.c are maintained in the dlz_bdbhpt_dynamic.c.
87