diff options
| author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2015-12-12 22:18:57 +0000 |
|---|---|---|
| committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2015-12-12 22:18:57 +0000 |
| commit | a7af7146c91c816cb83e0c5812eca7019531acb5 (patch) | |
| tree | 6e64b645522115b817ba7eabd4e4ce58f129e8c7 /iterator/iterator.h | |
| parent | 835a7e7a4dd68819f7610dafdf9277d3852aef6a (diff) | |
Diffstat (limited to 'iterator/iterator.h')
| -rw-r--r-- | iterator/iterator.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/iterator/iterator.h b/iterator/iterator.h index 9cf53b2b25a2..b7aa82ebe4ed 100644 --- a/iterator/iterator.h +++ b/iterator/iterator.h @@ -112,6 +112,32 @@ struct iter_env { * array of max_dependency_depth+1 size. */ int* target_fetch_policy; + + /** ip6.arpa dname in wireformat, used for qname-minimisation */ + uint8_t* ip6arpa_dname; +}; + +/** + * QNAME minimisation state + */ +enum minimisation_state { + /** + * (Re)start minimisation. Outgoing QNAME should be set to dp->name. + * State entered on new query or after following refferal or CNAME. + */ + INIT_MINIMISE_STATE = 0, + /** + * QNAME minimisataion ongoing. Increase QNAME on every iteration. + */ + MINIMISE_STATE, + /** + * Don't increment QNAME this iteration + */ + SKIP_MINIMISE_STATE, + /** + * Send out full QNAME + original QTYPE + */ + DONOT_MINIMISE_STATE, }; /** @@ -322,6 +348,15 @@ struct iter_qstate { /** list of pending queries to authoritative servers. */ struct outbound_list outlist; + + /** QNAME minimisation state */ + enum minimisation_state minimisation_state; + + /** + * The query info that is sent upstream. Will be a subset of qchase + * when qname minimisation is enabled. + */ + struct query_info qinfo_out; }; /** |
