File: functions.rst

package info (click to toggle)
unbound 1.24.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 31,436 kB
  • sloc: ansic: 138,476; sh: 6,860; yacc: 4,259; python: 1,950; makefile: 1,881; awk: 162; perl: 158; xml: 36
file content (255 lines) | stat: -rw-r--r-- 7,344 bytes parent folder | download | duplicates (3)
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
Scriptable functions
====================

Network
-------

.. function:: ntohs(netshort)

   This subroutine converts values between the host and network byte order. 
   Specifically, **ntohs()** converts 16-bit quantities from network byte order
   to host byte order.

   :param netshort: 16-bit short addr
   :rtype: converted addr


Cache
-----

.. function:: storeQueryInCache(qstate, qinfo, msgrep, is_referral)

   Store pending query in local cache.

   :param qstate: :class:`module_qstate`
   :param qinfo: :class:`query_info`
   :param msgrep: :class:`reply_info`
   :param is_referral: integer
   :rtype: boolean

.. function:: invalidateQueryInCache(qstate, qinfo)

   Invalidate record in local cache.

   :param qstate: :class:`module_qstate`
   :param qinfo: :class:`query_info`


EDNS options
------------

.. function:: register_edns_option(env, code, bypass_cache_stage=False, no_aggregation=False)

    Register EDNS option code.

    :param env: :class:`module_env`
    :param code: option code(integer)
    :param bypass_cache_stage: whether to bypass the cache response stage
    :param no_aggregation: whether this query should be unique
    :return: ``1`` if successful, ``0`` otherwise
    :rtype: integer

.. function:: edns_opt_list_find(list, code)

    Find the EDNS option code in the EDNS option list.

    :param list: linked list of :class:`edns_option`
    :param code: option code (integer)
    :return: the edns option if found or None
    :rtype: :class:`edns_option` or None

.. function:: edns_opt_list_remove(list, code);

    Remove an EDNS option code from the list.
    .. note:: All :class:`edns_option` with the code will be removed

    :param list: linked list of :class:`edns_option`
    :param code: option code (integer)
    :return: ``1`` if at least one :class:`edns_option` was removed, ``0`` otherwise
    :rtype: integer

.. function:: edns_opt_list_append(list, code, data, region)

    Append given EDNS option code with data to the list.

    :param list: linked list of :class:`edns_option`
    :param code: option code (integer)
    :param data: EDNS data. **Must** be a :class:`bytearray`
    :param region: :class:`regional`

.. function:: edns_opt_list_is_empty(list)

    Check if an EDNS option list is empty.

    :param list: linked list of :class:`edns_option`
    :return: ``1`` if list is empty, ``0`` otherwise
    :rtype: integer


Inplace callbacks
-----------------

.. function:: inplace_cb_reply(qinfo, qstate, rep, rcode, edns, opt_list_out, region, \*\*kwargs)

    Function prototype for callback functions used in
    `register_inplace_cb_reply`, `register_inplace_cb_reply_cache`,
    `register_inplace_cb_reply_local` and `register_inplace_cb_reply_servfail`.

    :param qinfo: :class:`query_info`
    :param qstate: :class:`module_qstate`
    :param rep: :class:`reply_info`
    :param rcode: return code (integer), check ``RCODE_`` constants.
    :param edns: :class:`edns_data`
    :param opt_list_out: :class:`edns_option`. EDNS option list to append options to.
    :param region: :class:`regional`
    :param \*\*kwargs: Dictionary that may contain parameters added in a future
        release. Current parameters:
        ``repinfo``: :class:`comm_reply`. Reply information for a communication point.

.. function:: inplace_cb_query(qinfo, flags, qstate, addr, zone, region)

    Function prototype for callback functions used in
    `register_inplace_cb_query`.

    :param qinfo: :class:`query_info`
    :param flags: query flags (integer)
    :param qstate: :class:`module_qstate`
    :param addr: :class:`sockaddr_storage`
    :param zone: zone name in wire format (bytes)
    :param region: :class:`regional`

.. function:: register_inplace_cb_reply(py_cb, env, id)

    Register py_cb as an inplace reply callback function.

    :param py_cb: Python function that follows `inplace_cb_reply`'s prototype. **Must** be callable.
    :param env: :class:`module_env`
    :param id: Module ID.
    :return: True on success, False otherwise
    :rtype: boolean

.. function:: register_inplace_cb_reply_cache(py_cb, env, id)

    Register py_cb as an inplace reply_cache callback function.

    :param py_cb: Python function that follows `inplace_cb_reply`'s prototype. **Must** be callable.
    :param env: :class:`module_env`
    :param id: Module ID.
    :return: True on success, False otherwise
    :rtype: boolean

.. function:: register_inplace_cb_reply_local(py_cb, env, id)

    Register py_cb as an inplace reply_local callback function.

    :param py_cb: Python function that follows `inplace_cb_reply`'s prototype. **Must** be callable.
    :param env: :class:`module_env`
    :param id: Module ID.
    :return: True on success, False otherwise
    :rtype: boolean

.. function:: register_inplace_cb_reply_servfail(py_cb, env, id)

    Register py_cb as an inplace reply_servfail callback function.

    :param py_cb: Python function that follows `inplace_cb_reply`'s prototype. **Must** be callable.
    :param env: :class:`module_env`
    :param id: Module ID.
    :return: True on success, False otherwise
    :rtype: boolean

.. function:: register_inplace_cb_query(py_cb, env, id)

    Register py_cb as an inplace query callback function.

    :param py_cb: Python function that follows `inplace_cb_query`'s prototype. **Must** be callable.
    :param env: :class:`module_env`
    :param id: Module ID.
    :return: True on success, False otherwise
    :rtype: boolean

Logging
-------

.. function:: verbose(level, msg)

   Log a verbose message, pass the level for this message.
   No trailing newline is needed.

   :param level: verbosity level for this message, compared to global verbosity setting.
   :param msg: string message

.. function:: log_info(msg)

   Log informational message. No trailing newline is needed.

   :param msg: string message

.. function:: log_err(msg)

   Log error message. No trailing newline is needed.

   :param msg: string message

.. function:: log_warn(msg)

   Log warning message. No trailing newline is needed.

   :param msg: string message

.. function:: log_hex(msg, data, length)

   Log a hex-string to the log. Can be any length.
   performs mallocs to do so, slow. But debug useful.

   :param msg: string desc to accompany the hexdump.
   :param data: data to dump in hex format.
   :param length: length of data.

.. function:: log_dns_msg(str, qinfo, reply)

   Log DNS message.

   :param str: string message
   :param qinfo: :class:`query_info`
   :param reply: :class:`reply_info`

.. function:: log_query_info(verbosity_value, str, qinf)

   Log query information.

   :param verbosity_value: see constants
   :param str: string message
   :param qinf: :class:`query_info`

.. function:: regional_log_stats(r)

   Log regional statistics.

   :param r: :class:`regional`


Debugging
---------

.. function:: strextstate(module_ext_state)

   Debug utility, module external qstate to string.

   :param module_ext_state: the state value.
   :rtype: descriptive string.

.. function:: strmodulevent(module_event)

   Debug utility, module event to string.

   :param module_event: the module event value.
   :rtype: descriptive string.

.. function:: ldns_rr_type2str(atype)

   Convert RR type to string.

.. function:: ldns_rr_class2str(aclass)

   Convert RR class to string.