xref: /netbsd-src/external/bsd/unbound/dist/pythonmod/doc/modules/functions.rst (revision 7a540f2bd4f5b968566c2607d6462c7f2fb452cf)
1Scriptable functions
2====================
3
4Network
5-------
6
7.. function:: ntohs(netshort)
8
9   This subroutine converts values between the host and network byte order.
10   Specifically, **ntohs()** converts 16-bit quantities from network byte order
11   to host byte order.
12
13   :param netshort: 16-bit short addr
14   :rtype: converted addr
15
16
17Cache
18-----
19
20.. function:: storeQueryInCache(qstate, qinfo, msgrep, is_referral)
21
22   Store pending query in local cache.
23
24   :param qstate: :class:`module_qstate`
25   :param qinfo: :class:`query_info`
26   :param msgrep: :class:`reply_info`
27   :param is_referral: integer
28   :rtype: boolean
29
30.. function:: invalidateQueryInCache(qstate, qinfo)
31
32   Invalidate record in local cache.
33
34   :param qstate: :class:`module_qstate`
35   :param qinfo: :class:`query_info`
36
37
38EDNS options
39------------
40
41.. function:: register_edns_option(env, code, bypass_cache_stage=False, no_aggregation=False)
42
43    Register EDNS option code.
44
45    :param env: :class:`module_env`
46    :param code: option code(integer)
47    :param bypass_cache_stage: whether to bypass the cache response stage
48    :param no_aggregation: whether this query should be unique
49    :return: ``1`` if successful, ``0`` otherwise
50    :rtype: integer
51
52.. function:: edns_opt_list_find(list, code)
53
54    Find the EDNS option code in the EDNS option list.
55
56    :param list: linked list of :class:`edns_option`
57    :param code: option code (integer)
58    :return: the edns option if found or None
59    :rtype: :class:`edns_option` or None
60
61.. function:: edns_opt_list_remove(list, code);
62
63    Remove an EDNS option code from the list.
64    .. note:: All :class:`edns_option` with the code will be removed
65
66    :param list: linked list of :class:`edns_option`
67    :param code: option code (integer)
68    :return: ``1`` if at least one :class:`edns_option` was removed, ``0`` otherwise
69    :rtype: integer
70
71.. function:: edns_opt_list_append(list, code, data, region)
72
73    Append given EDNS option code with data to the list.
74
75    :param list: linked list of :class:`edns_option`
76    :param code: option code (integer)
77    :param data: EDNS data. **Must** be a :class:`bytearray`
78    :param region: :class:`regional`
79
80.. function:: edns_opt_list_is_empty(list)
81
82    Check if an EDNS option list is empty.
83
84    :param list: linked list of :class:`edns_option`
85    :return: ``1`` if list is empty, ``0`` otherwise
86    :rtype: integer
87
88
89Inplace callbacks
90-----------------
91
92.. function:: inplace_cb_reply(qinfo, qstate, rep, rcode, edns, opt_list_out, region, \*\*kwargs)
93
94    Function prototype for callback functions used in
95    `register_inplace_cb_reply`, `register_inplace_cb_reply_cache`,
96    `register_inplace_cb_reply_local` and `register_inplace_cb_reply_servfail`.
97
98    :param qinfo: :class:`query_info`
99    :param qstate: :class:`module_qstate`
100    :param rep: :class:`reply_info`
101    :param rcode: return code (integer), check ``RCODE_`` constants.
102    :param edns: :class:`edns_data`
103    :param opt_list_out: :class:`edns_option`. EDNS option list to append options to.
104    :param region: :class:`regional`
105    :param \*\*kwargs: Dictionary that may contain parameters added in a future
106        release. Current parameters:
107        ``repinfo``: :class:`comm_reply`. Reply information for a communication point.
108
109.. function:: inplace_cb_query(qinfo, flags, qstate, addr, zone, region)
110
111    Function prototype for callback functions used in
112    `register_inplace_cb_query`.
113
114    :param qinfo: :class:`query_info`
115    :param flags: query flags (integer)
116    :param qstate: :class:`module_qstate`
117    :param addr: :class:`sockaddr_storage`
118    :param zone: zone name in wire format (bytes)
119    :param region: :class:`regional`
120
121.. function:: register_inplace_cb_reply(py_cb, env, id)
122
123    Register py_cb as an inplace reply callback function.
124
125    :param py_cb: Python function that follows `inplace_cb_reply`'s prototype. **Must** be callable.
126    :param env: :class:`module_env`
127    :param id: Module ID.
128    :return: True on success, False otherwise
129    :rtype: boolean
130
131.. function:: register_inplace_cb_reply_cache(py_cb, env, id)
132
133    Register py_cb as an inplace reply_cache callback function.
134
135    :param py_cb: Python function that follows `inplace_cb_reply`'s prototype. **Must** be callable.
136    :param env: :class:`module_env`
137    :param id: Module ID.
138    :return: True on success, False otherwise
139    :rtype: boolean
140
141.. function:: register_inplace_cb_reply_local(py_cb, env, id)
142
143    Register py_cb as an inplace reply_local callback function.
144
145    :param py_cb: Python function that follows `inplace_cb_reply`'s prototype. **Must** be callable.
146    :param env: :class:`module_env`
147    :param id: Module ID.
148    :return: True on success, False otherwise
149    :rtype: boolean
150
151.. function:: register_inplace_cb_reply_servfail(py_cb, env, id)
152
153    Register py_cb as an inplace reply_servfail callback function.
154
155    :param py_cb: Python function that follows `inplace_cb_reply`'s prototype. **Must** be callable.
156    :param env: :class:`module_env`
157    :param id: Module ID.
158    :return: True on success, False otherwise
159    :rtype: boolean
160
161.. function:: register_inplace_cb_query(py_cb, env, id)
162
163    Register py_cb as an inplace query callback function.
164
165    :param py_cb: Python function that follows `inplace_cb_query`'s prototype. **Must** be callable.
166    :param env: :class:`module_env`
167    :param id: Module ID.
168    :return: True on success, False otherwise
169    :rtype: boolean
170
171Logging
172-------
173
174.. function:: verbose(level, msg)
175
176   Log a verbose message, pass the level for this message.
177   No trailing newline is needed.
178
179   :param level: verbosity level for this message, compared to global verbosity setting.
180   :param msg: string message
181
182.. function:: log_info(msg)
183
184   Log informational message. No trailing newline is needed.
185
186   :param msg: string message
187
188.. function:: log_err(msg)
189
190   Log error message. No trailing newline is needed.
191
192   :param msg: string message
193
194.. function:: log_warn(msg)
195
196   Log warning message. No trailing newline is needed.
197
198   :param msg: string message
199
200.. function:: log_hex(msg, data, length)
201
202   Log a hex-string to the log. Can be any length.
203   performs mallocs to do so, slow. But debug useful.
204
205   :param msg: string desc to accompany the hexdump.
206   :param data: data to dump in hex format.
207   :param length: length of data.
208
209.. function:: log_dns_msg(str, qinfo, reply)
210
211   Log DNS message.
212
213   :param str: string message
214   :param qinfo: :class:`query_info`
215   :param reply: :class:`reply_info`
216
217.. function:: log_query_info(verbosity_value, str, qinf)
218
219   Log query information.
220
221   :param verbosity_value: see constants
222   :param str: string message
223   :param qinf: :class:`query_info`
224
225.. function:: regional_log_stats(r)
226
227   Log regional statistics.
228
229   :param r: :class:`regional`
230
231
232Debugging
233---------
234
235.. function:: strextstate(module_ext_state)
236
237   Debug utility, module external qstate to string.
238
239   :param module_ext_state: the state value.
240   :rtype: descriptive string.
241
242.. function:: strmodulevent(module_event)
243
244   Debug utility, module event to string.
245
246   :param module_event: the module event value.
247   :rtype: descriptive string.
248
249.. function:: ldns_rr_type2str(atype)
250
251   Convert RR type to string.
252
253.. function:: ldns_rr_class2str(aclass)
254
255   Convert RR class to string.
256