summaryrefslogtreecommitdiffstats
path: root/contrib/dlz/modules/bdbhpt/README.md
blob: 10f10a9bd27eb72ead85d29957d70392cd2454c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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.