Commit cc37277f authored by Daniel Salzman's avatar Daniel Salzman

conf: add zone.journal option

parent 44aee437
...@@ -694,8 +694,9 @@ Definition of zones served by the server. ...@@ -694,8 +694,9 @@ Definition of zones served by the server.
zone: zone:
\- domain: DNAME \- domain: DNAME
template: template_id template: template_id
file: STR
storage: STR storage: STR
file: STR
journal: STR
master: remote_id ... master: remote_id ...
ddns\-master: remote_id ddns\-master: remote_id
notify: remote_id ... notify: remote_id ...
...@@ -724,6 +725,11 @@ A zone name identifier. ...@@ -724,6 +725,11 @@ A zone name identifier.
A \fI\%reference\fP to a configuration template. A \fI\%reference\fP to a configuration template.
.sp .sp
\fIDefault:\fP not set or \fIdefault\fP (if the template exists) \fIDefault:\fP not set or \fIdefault\fP (if the template exists)
.SS storage
.sp
A data directory for storing zone files, journal files and timers database.
.sp
\fIDefault:\fP \fB${localstatedir}/lib/knot\fP (configured with \fB\-\-with\-storage=path\fP)
.SS file .SS file
.sp .sp
A path to the zone file. Non absolute path is relative to A path to the zone file. Non absolute path is relative to
...@@ -749,11 +755,13 @@ terminating dot (the result for the root zone is the empty string!). ...@@ -749,11 +755,13 @@ terminating dot (the result for the root zone is the empty string!).
.UNINDENT .UNINDENT
.sp .sp
\fIDefault:\fP \fI\%storage\fP/\fB%s\fP\&.zone \fIDefault:\fP \fI\%storage\fP/\fB%s\fP\&.zone
.SS storage .SS journal
.sp .sp
A data directory for storing zone files, journal files and timers database. A path to the zone journal. Non absolute path is relative to
\fI\%storage\fP\&. The same set of formatters as for
\fI\%file\fP is supported.
.sp .sp
\fIDefault:\fP \fB${localstatedir}/lib/knot\fP (configured with \fB\-\-with\-storage=path\fP) \fIDefault:\fP \fI\%storage\fP/\fB%s\fP\&.db
.SS master .SS master
.sp .sp
An ordered list of \fI\%references\fP to zone master servers. An ordered list of \fI\%references\fP to zone master servers.
......
...@@ -834,8 +834,9 @@ Definition of zones served by the server. ...@@ -834,8 +834,9 @@ Definition of zones served by the server.
zone: zone:
- domain: DNAME - domain: DNAME
template: template_id template: template_id
file: STR
storage: STR storage: STR
file: STR
journal: STR
master: remote_id ... master: remote_id ...
ddns-master: remote_id ddns-master: remote_id
notify: remote_id ... notify: remote_id ...
...@@ -869,6 +870,15 @@ A :ref:`reference<template_id>` to a configuration template. ...@@ -869,6 +870,15 @@ A :ref:`reference<template_id>` to a configuration template.
*Default:* not set or *default* (if the template exists) *Default:* not set or *default* (if the template exists)
.. _zone_storage:
storage
-------
A data directory for storing zone files, journal files and timers database.
*Default:* ``${localstatedir}/lib/knot`` (configured with ``--with-storage=path``)
.. _zone_file: .. _zone_file:
file file
...@@ -893,14 +903,16 @@ A path to the zone file. Non absolute path is relative to ...@@ -893,14 +903,16 @@ A path to the zone file. Non absolute path is relative to
*Default:* :ref:`storage<zone_storage>`/``%s``\ .zone *Default:* :ref:`storage<zone_storage>`/``%s``\ .zone
.. _zone_storage: .. _zone_journal:
storage journal
------- -------
A data directory for storing zone files, journal files and timers database. A path to the zone journal. Non absolute path is relative to
:ref:`storage<zone_storage>`. The same set of formatters as for
:ref:`file<zone_file>` is supported.
*Default:* ``${localstatedir}/lib/knot`` (configured with ``--with-storage=path``) *Default:* :ref:`storage<zone_storage>`/``%s``\ .db
.. _zone_master: .. _zone_master:
......
...@@ -1062,7 +1062,15 @@ char* conf_journalfile_txn( ...@@ -1062,7 +1062,15 @@ char* conf_journalfile_txn(
return NULL; return NULL;
} }
return get_filename(conf, txn, zone, "%s.db"); conf_val_t val = conf_zone_get_txn(conf, txn, C_JOURNAL, zone);
const char *journal = conf_str(&val);
// Use default journalfile name pattern if not specified.
if (journal == NULL) {
journal = "%s.db";
}
return get_filename(conf, txn, zone, journal);
} }
size_t conf_udp_threads_txn( size_t conf_udp_threads_txn(
......
...@@ -216,8 +216,9 @@ static const yp_item_t desc_remote[] = { ...@@ -216,8 +216,9 @@ static const yp_item_t desc_remote[] = {
}; };
#define ZONE_ITEMS(FLAGS) \ #define ZONE_ITEMS(FLAGS) \
{ C_FILE, YP_TSTR, YP_VNONE, FLAGS }, \
{ C_STORAGE, YP_TSTR, YP_VSTR = { STORAGE_DIR }, FLAGS }, \ { C_STORAGE, YP_TSTR, YP_VSTR = { STORAGE_DIR }, FLAGS }, \
{ C_FILE, YP_TSTR, YP_VNONE, FLAGS }, \
{ C_JOURNAL, YP_TSTR, YP_VNONE, FLAGS }, \
{ C_MASTER, YP_TREF, YP_VREF = { C_RMT }, YP_FMULTI, { check_ref } }, \ { C_MASTER, YP_TREF, YP_VREF = { C_RMT }, YP_FMULTI, { check_ref } }, \
{ C_DDNS_MASTER, YP_TREF, YP_VREF = { C_RMT }, YP_FNONE, { check_ref } }, \ { C_DDNS_MASTER, YP_TREF, YP_VREF = { C_RMT }, YP_FNONE, { check_ref } }, \
{ C_NOTIFY, YP_TREF, YP_VREF = { C_RMT }, YP_FMULTI, { check_ref } }, \ { C_NOTIFY, YP_TREF, YP_VREF = { C_RMT }, YP_FMULTI, { check_ref } }, \
......
...@@ -52,6 +52,7 @@ ...@@ -52,6 +52,7 @@
#define C_IDENT "\x08""identity" #define C_IDENT "\x08""identity"
#define C_INCL "\x07""include" #define C_INCL "\x07""include"
#define C_IXFR_DIFF "\x15""ixfr-from-differences" #define C_IXFR_DIFF "\x15""ixfr-from-differences"
#define C_JOURNAL "\x07""journal"
#define C_KASP_DB "\x07""kasp-db" #define C_KASP_DB "\x07""kasp-db"
#define C_KEY "\x03""key" #define C_KEY "\x03""key"
#define C_KEYSTORE "\x08""keystore" #define C_KEYSTORE "\x08""keystore"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment