/src/libcoap/include/coap3/coap_option.h
Line | Count | Source |
1 | | /* |
2 | | * coap_option.h -- helpers for handling options in CoAP PDUs |
3 | | * |
4 | | * Copyright (C) 2010-2013,2022-2026 Olaf Bergmann <bergmann@tzi.org> |
5 | | * |
6 | | * SPDX-License-Identifier: BSD-2-Clause |
7 | | * |
8 | | * This file is part of the CoAP library libcoap. Please see README for terms |
9 | | * of use. |
10 | | */ |
11 | | |
12 | | /** |
13 | | * @file coap_option.h |
14 | | * @brief Helpers for handling options in CoAP PDUs |
15 | | */ |
16 | | |
17 | | #ifndef COAP_OPTION_H_ |
18 | | #define COAP_OPTION_H_ |
19 | | |
20 | | #if defined(RIOT_VERSION) |
21 | | #include <thread.h> |
22 | | #endif /* RIOT_VERSION */ |
23 | | |
24 | | #if defined(_WIN32) |
25 | | #include <stddef.h> |
26 | | #include <stdint.h> |
27 | | #endif /* _WIN32 */ |
28 | | |
29 | | #ifndef NULL |
30 | | #define NULL 0 |
31 | | #endif |
32 | | |
33 | | #ifdef __cplusplus |
34 | | extern "C" { |
35 | | #endif |
36 | | |
37 | | typedef uint16_t coap_option_num_t; |
38 | | |
39 | | /** |
40 | | * Use byte-oriented access methods here because sliding a complex struct |
41 | | * coap_opt_t over the data buffer may cause bus error on certain platforms. |
42 | | */ |
43 | | typedef uint8_t coap_opt_t; |
44 | | #define PCHAR(p) ((coap_opt_t *)(p)) |
45 | | |
46 | | /** |
47 | | * Representation of CoAP options. |
48 | | */ |
49 | | typedef struct { |
50 | | uint16_t delta; |
51 | | size_t length; |
52 | | const uint8_t *value; |
53 | | } coap_option_t; |
54 | | |
55 | | /** |
56 | | * Parses the option pointed to by @p opt into @p result. This function returns |
57 | | * the number of bytes that have been parsed, or @c 0 on error. An error is |
58 | | * signaled when illegal delta or length values are encountered or when option |
59 | | * parsing would result in reading past the option (i.e. beyond opt + length). |
60 | | * |
61 | | * @param opt The beginning of the option to parse. |
62 | | * @param length The maximum length of @p opt. |
63 | | * @param result A pointer to the coap_option_t structure that is filled with |
64 | | * actual values iff coap_opt_parse() > 0. |
65 | | * @return The number of bytes parsed or @c 0 on error. |
66 | | */ |
67 | | size_t coap_opt_parse(const coap_opt_t *opt, |
68 | | size_t length, |
69 | | coap_option_t *result); |
70 | | |
71 | | /** |
72 | | * Returns the size of the given option, taking into account a possible option |
73 | | * jump. |
74 | | * |
75 | | * @param opt An option jump or the beginning of the option. |
76 | | * @return The number of bytes between @p opt and the end of the option |
77 | | * starting at @p opt. In case of an error, this function returns |
78 | | * @c 0 as options need at least one byte storage space. |
79 | | */ |
80 | | size_t coap_opt_size(const coap_opt_t *opt); |
81 | | |
82 | | /** |
83 | | * @ingroup application_api |
84 | | * @defgroup opt_filter Option Filters |
85 | | * API for access option filters |
86 | | * @{ |
87 | | */ |
88 | | |
89 | | /** |
90 | | * The number of option types below 256 that can be stored in an |
91 | | * option filter. COAP_OPT_FILTER_SHORT + COAP_OPT_FILTER_LONG must be |
92 | | * at most 16. Each coap_option_filter_t object reserves |
93 | | * ((COAP_OPT_FILTER_SHORT + 1) / 2) * 2 bytes for short options. |
94 | | */ |
95 | 0 | #define COAP_OPT_FILTER_SHORT 6 |
96 | | |
97 | | /** |
98 | | * The number of option types above 255 that can be stored in an |
99 | | * option filter. COAP_OPT_FILTER_SHORT + COAP_OPT_FILTER_LONG must be |
100 | | * at most 16. Each coap_option_filter_t object reserves |
101 | | * COAP_OPT_FILTER_LONG * 2 bytes for short options. |
102 | | */ |
103 | 0 | #define COAP_OPT_FILTER_LONG 2 |
104 | | |
105 | | /* Ensure that COAP_OPT_FILTER_SHORT and COAP_OPT_FILTER_LONG are set |
106 | | * correctly. */ |
107 | | #if (COAP_OPT_FILTER_SHORT + COAP_OPT_FILTER_LONG > 16) |
108 | | #error COAP_OPT_FILTER_SHORT + COAP_OPT_FILTER_LONG must be less or equal 16 |
109 | | #endif /* (COAP_OPT_FILTER_SHORT + COAP_OPT_FILTER_LONG > 16) */ |
110 | | |
111 | | /* |
112 | | * mask contains a bit vector that indicates which fields in the long_opts[] |
113 | | * and subsequent short_opts[] are used. The first COAP_OPT_FILTER_LONG bits |
114 | | * correspond to the long option types that are stored in long_opts[] |
115 | | * elements. The next COAP_OPT_FILTER_SHORT bits correspond to the short |
116 | | * option types that are stored in short_opts[]. |
117 | | */ |
118 | | typedef struct coap_opt_filter_t { |
119 | | uint16_t mask; |
120 | | uint16_t long_opts[COAP_OPT_FILTER_LONG]; |
121 | | uint8_t short_opts[COAP_OPT_FILTER_SHORT]; |
122 | | } coap_opt_filter_t; |
123 | | |
124 | | /** Pre-defined filter that includes all options. */ |
125 | 0 | #define COAP_OPT_ALL NULL |
126 | | |
127 | | /** |
128 | | * Clears filter @p filter. |
129 | | * |
130 | | * @param filter The filter to clear. |
131 | | */ |
132 | | void coap_option_filter_clear(coap_opt_filter_t *filter); |
133 | | |
134 | | /** |
135 | | * Sets the corresponding entry for @p number in @p filter. This |
136 | | * function returns @c 1 if bit was set or @c 0 on error (i.e. when |
137 | | * there is not enough space to fit the given number in the filter). |
138 | | * |
139 | | * @param filter The filter object to change. |
140 | | * @param number The option number for which the bit should be set. |
141 | | * |
142 | | * @return @c 1 if bit was set, @c 0 otherwise. |
143 | | */ |
144 | | int coap_option_filter_set(coap_opt_filter_t *filter, coap_option_num_t number); |
145 | | |
146 | | /** |
147 | | * Clears the corresponding entry for @p number in @p filter. This |
148 | | * function returns @c 1 if bit was set or @c 0 if not previously set. |
149 | | * |
150 | | * @param filter The filter object to change. |
151 | | * @param number The option number that should be cleared from the filter. |
152 | | * |
153 | | * @return @c 1 if bit was cleared, @c 0 otherwise. |
154 | | */ |
155 | | int coap_option_filter_unset(coap_opt_filter_t *filter, |
156 | | coap_option_num_t number); |
157 | | |
158 | | /** |
159 | | * Checks if @p number is contained in @p filter. This function returns |
160 | | * @c 1 if found, @c 0 if not. |
161 | | * |
162 | | * @param filter The filter object to search. |
163 | | * @param number The option number to search for. |
164 | | * |
165 | | * @return @c 1 if @p number was found, @c 0 otherwise |
166 | | */ |
167 | | int coap_option_filter_get(coap_opt_filter_t *filter, coap_option_num_t number); |
168 | | |
169 | | /** |
170 | | * Iterator to run through PDU options. This object must be |
171 | | * initialized with coap_option_iterator_init(). Call |
172 | | * coap_option_next() to walk through the list of options until |
173 | | * coap_option_next() returns @c NULL. |
174 | | * |
175 | | * @code |
176 | | * coap_opt_t *option; |
177 | | * coap_opt_iterator_t opt_iter; |
178 | | * coap_option_iterator_init(pdu, &opt_iter, COAP_OPT_ALL); |
179 | | * |
180 | | * while ((option = coap_option_next(&opt_iter))) { |
181 | | * ... do something with option ... |
182 | | * } |
183 | | * @endcode |
184 | | */ |
185 | | typedef struct { |
186 | | size_t length; /**< remaining length of PDU */ |
187 | | coap_option_num_t number; /**< decoded option number */ |
188 | | unsigned int bad:1; /**< iterator object is ok if not set */ |
189 | | unsigned int filtered:1; /**< denotes whether or not filter is used */ |
190 | | coap_opt_t *next_option; /**< pointer to the unparsed next option */ |
191 | | coap_opt_filter_t filter; /**< option filter */ |
192 | | } coap_opt_iterator_t; |
193 | | |
194 | | /** |
195 | | * Initializes the given option iterator @p oi to point to the beginning of the |
196 | | * @p pdu's option list. This function returns @p oi on success, @c NULL |
197 | | * otherwise (i.e. when no options exist). Note that a length check on the |
198 | | * option list must be performed before coap_option_iterator_init() is called. |
199 | | * |
200 | | * @param pdu The PDU the options of which should be walked through. |
201 | | * @param oi An iterator object that will be initilized. |
202 | | * @param filter An optional option number filter. |
203 | | * With @p number != @c COAP_OPT_ALL, coap_option_next() |
204 | | * will return only options matching this bitmask. |
205 | | * Fence-post options @c 14, @c 28, @c 42, ... are always |
206 | | * skipped. |
207 | | * |
208 | | * @return The iterator object @p oi on success, @c NULL otherwise. |
209 | | */ |
210 | | coap_opt_iterator_t *coap_option_iterator_init(const coap_pdu_t *pdu, |
211 | | coap_opt_iterator_t *oi, |
212 | | const coap_opt_filter_t *filter); |
213 | | |
214 | | /** |
215 | | * Updates the iterator @p oi to point to the next option. This function returns |
216 | | * a pointer to that option or @c NULL if no more options exist. The contents of |
217 | | * @p oi will be updated. In particular, @c oi->n specifies the current option's |
218 | | * ordinal number (counted from @c 1), @c oi->number is the option's number |
219 | | * value, and @c oi->option points to the beginning of the current option |
220 | | * itself. When * advanced past the last option, @c oi->option will be @c NULL. |
221 | | * |
222 | | * Note that options are skipped whose corresponding bits in the filter |
223 | | * specified with coap_option_iterator_init() are @c 0. Options with numbers |
224 | | * that do not fit in this filter hence will always be returned. |
225 | | * |
226 | | * @param oi The option iterator to update. |
227 | | * |
228 | | * @return The next option or @c NULL if no more options exist. |
229 | | */ |
230 | | coap_opt_t *coap_option_next(coap_opt_iterator_t *oi); |
231 | | |
232 | | /** |
233 | | * Retrieves the first option of number @p number from @p pdu. @p oi must |
234 | | * point to a coap_opt_iterator_t object that will be initialized by this |
235 | | * function to filter only options with number @p number. This function returns |
236 | | * the first option with this number, or @c NULL if not found. |
237 | | * |
238 | | * @param pdu The PDU to parse for options. |
239 | | * @param number The option number to search for. |
240 | | * @param oi An iterator object to use. |
241 | | * |
242 | | * @return A pointer to the first option of number @p number, or @c NULL if |
243 | | * not found. |
244 | | */ |
245 | | coap_opt_t *coap_check_option(const coap_pdu_t *pdu, |
246 | | coap_option_num_t number, |
247 | | coap_opt_iterator_t *oi); |
248 | | |
249 | | /** |
250 | | * Encodes the given delta and length values into @p opt. This function returns |
251 | | * the number of bytes that were required to encode @p delta and @p length or @c |
252 | | * 0 on error. Note that the result indicates by how many bytes @p opt must be |
253 | | * advanced to encode the option value. |
254 | | * |
255 | | * @param opt The option buffer space where @p delta and @p length are |
256 | | * written. |
257 | | * @param maxlen The maximum length of @p opt. |
258 | | * @param delta The actual delta value to encode. |
259 | | * @param length The actual length value to encode. |
260 | | * |
261 | | * @return The number of bytes used or @c 0 on error. |
262 | | */ |
263 | | size_t coap_opt_setheader(coap_opt_t *opt, |
264 | | size_t maxlen, |
265 | | uint16_t delta, |
266 | | size_t length); |
267 | | |
268 | | /** |
269 | | * Compute storage bytes needed for an option with given @p delta and |
270 | | * @p length |
271 | | * |
272 | | * @param delta The option delta. |
273 | | * @param length The option length. |
274 | | * |
275 | | * @return The number of bytes required to encode this option. |
276 | | */ |
277 | | size_t coap_opt_encode_size(uint16_t delta, size_t length); |
278 | | |
279 | | /** |
280 | | * Encodes option with given @p delta into @p opt. This function returns the |
281 | | * number of bytes written to @p opt or @c 0 on error. This happens especially |
282 | | * when @p opt does not provide sufficient space to store the option value, |
283 | | * delta, and option jumps when required. |
284 | | * |
285 | | * @param opt The option buffer space where @p val is written. |
286 | | * @param n Maximum length of @p opt. |
287 | | * @param delta The option delta. |
288 | | * @param val The option value to copy into @p opt. |
289 | | * @param length The actual length of @p val. |
290 | | * |
291 | | * @return The number of bytes that have been written to @p opt or @c 0 on |
292 | | * error. The return value will always be less than @p n. |
293 | | */ |
294 | | size_t coap_opt_encode(coap_opt_t *opt, |
295 | | size_t n, |
296 | | uint16_t delta, |
297 | | const uint8_t *val, |
298 | | size_t length); |
299 | | |
300 | | /** |
301 | | * Returns the length of the given option. @p opt must point to an option jump |
302 | | * or the beginning of the option. This function returns @c 0 when @p opt is not |
303 | | * an option or the actual length of @p opt (which can be @c 0 as well). |
304 | | * |
305 | | * @note {The rationale for using @c 0 in case of an error is that in most |
306 | | * contexts, the result of this function is used to skip the next |
307 | | * coap_opt_length() bytes.} |
308 | | * |
309 | | * @param opt The option whose length should be returned. |
310 | | * |
311 | | * @return The option's length or @c 0 when undefined. |
312 | | */ |
313 | | uint32_t coap_opt_length(const coap_opt_t *opt); |
314 | | |
315 | | /** |
316 | | * Returns a pointer to the value of the given option. @p opt must point to an |
317 | | * option jump or the beginning of the option. This function returns @c NULL if |
318 | | * @p opt is not a valid option. |
319 | | * |
320 | | * @param opt The option whose value should be returned. |
321 | | * |
322 | | * @return A pointer to the option value or @c NULL on error. |
323 | | */ |
324 | | const uint8_t *coap_opt_value(const coap_opt_t *opt); |
325 | | |
326 | | /** |
327 | | * Representation of chained list of CoAP options to install. |
328 | | * |
329 | | * @code |
330 | | * coap_optlist_t *optlist_chain = NULL; |
331 | | * coap_pdu_t *pdu = coap_new_pdu(session); |
332 | | * |
333 | | * ... other set up code ... |
334 | | * coap_insert_optlist(&optlist_chain, coap_new_optlist(COAP_OPTION_OBSERVE, |
335 | | * COAP_OBSERVE_ESTABLISH, NULL)); |
336 | | * |
337 | | * coap_add_optlist_pdu(pdu, &optlist_chain); |
338 | | * ... other code ... |
339 | | * coap_delete_optlist(optlist_chain); |
340 | | * @endcode |
341 | | */ |
342 | | typedef struct coap_optlist_t { |
343 | | struct coap_optlist_t *next; /**< next entry in the optlist chain */ |
344 | | uint16_t number; /**< the option number (no delta coding) */ |
345 | | size_t length; /**< the option value length */ |
346 | | uint8_t *data; /**< the option data */ |
347 | | } coap_optlist_t; |
348 | | |
349 | | /** |
350 | | * Create a new optlist entry. |
351 | | * |
352 | | * Note: Where possible, the option data needs to be stripped of leading zeros |
353 | | * (big endian) to reduce the amount of data needed in the PDU, as well as in |
354 | | * some cases the maximum data size of an opton can be exceeded if not stripped |
355 | | * and hence be illegal. This is done by using coap_encode_var_safe() or |
356 | | * coap_encode_var_safe8(). |
357 | | * |
358 | | * @param number The option number (COAP_OPTION_*) |
359 | | * @param length The option length |
360 | | * @param data The option value data |
361 | | * |
362 | | * @return A pointer to the new optlist entry, or @c NULL if error |
363 | | */ |
364 | | coap_optlist_t *coap_new_optlist(uint16_t number, |
365 | | size_t length, |
366 | | const uint8_t *data); |
367 | | |
368 | | /** |
369 | | * The current optlist of @p optlist_chain is first sorted (as per RFC7272 |
370 | | * ordering requirements) and then added to the @p pdu. |
371 | | * |
372 | | * @param pdu The pdu to add the options to from the chain list |
373 | | * @param optlist_chain The chained list of optlist to add to the pdu |
374 | | * |
375 | | * @return @c 1 if succesful or @c 0 if failure; |
376 | | */ |
377 | | int coap_add_optlist_pdu(coap_pdu_t *pdu, coap_optlist_t **optlist_chain); |
378 | | |
379 | | |
380 | | /** |
381 | | * @brief Sorts the optlist chain |
382 | | * |
383 | | * @param options The optlist chain to sort |
384 | | * |
385 | | * @return @c 1 if sorted successfully, @c 0 otherwise. |
386 | | */ |
387 | | int coap_sort_optlist(coap_optlist_t **options); |
388 | | |
389 | | /** |
390 | | * Adds @p optlist to the given @p optlist_chain. The optlist_chain variable |
391 | | * be set to NULL before the initial call to coap_insert_optlist(). |
392 | | * The optlist_chain will need to be deleted using coap_delete_optlist() |
393 | | * when no longer required. |
394 | | * |
395 | | * @param optlist_chain The chain to add optlist to |
396 | | * @param optlist The optlist to add to the queue |
397 | | * |
398 | | * @return @c 1 if successful, @c 0 otherwise. |
399 | | */ |
400 | | int coap_insert_optlist(coap_optlist_t **optlist_chain, |
401 | | coap_optlist_t *optlist); |
402 | | |
403 | | /** |
404 | | * Removes all entries from the @p optlist_chain, freeing off their |
405 | | * memory usage. |
406 | | * |
407 | | * @param optlist_chain The optlist chain to remove all the entries from |
408 | | */ |
409 | | void coap_delete_optlist(coap_optlist_t *optlist_chain); |
410 | | |
411 | | /** @} */ |
412 | | |
413 | | /** |
414 | | * Sets the corresponding bit for @p type in @p filter. This function returns @c |
415 | | * 1 if bit was set or @c -1 on error (i.e. when the given type does not fit in |
416 | | * the filter). |
417 | | * |
418 | | * @deprecated Use coap_option_filter_set() instead. |
419 | | * |
420 | | * @param filter The filter object to change. |
421 | | * @param type The type for which the bit should be set. |
422 | | * |
423 | | * @return @c 1 if bit was set, @c -1 otherwise. |
424 | | */ |
425 | | COAP_STATIC_INLINE COAP_DEPRECATED int |
426 | 0 | coap_option_setb(coap_opt_filter_t *filter, uint16_t type) { |
427 | 0 | return coap_option_filter_set(filter, type) ? 1 : -1; |
428 | 0 | } Unexecuted instantiation: coap_address.c:coap_option_setb Unexecuted instantiation: coap_block.c:coap_option_setb Unexecuted instantiation: coap_debug.c:coap_option_setb Unexecuted instantiation: coap_encode.c:coap_option_setb Unexecuted instantiation: coap_mem.c:coap_option_setb Unexecuted instantiation: coap_net.c:coap_option_setb Unexecuted instantiation: coap_netif.c:coap_option_setb Unexecuted instantiation: coap_openssl.c:coap_option_setb Unexecuted instantiation: coap_option.c:coap_option_setb Unexecuted instantiation: coap_oscore.c:coap_option_setb Unexecuted instantiation: coap_pdu.c:coap_option_setb Unexecuted instantiation: coap_proxy.c:coap_option_setb Unexecuted instantiation: coap_prng.c:coap_option_setb Unexecuted instantiation: coap_resource.c:coap_option_setb Unexecuted instantiation: coap_session.c:coap_option_setb Unexecuted instantiation: coap_str.c:coap_option_setb Unexecuted instantiation: coap_strm_posix.c:coap_option_setb Unexecuted instantiation: coap_subscribe.c:coap_option_setb Unexecuted instantiation: coap_time.c:coap_option_setb Unexecuted instantiation: coap_uri.c:coap_option_setb Unexecuted instantiation: coap_ws.c:coap_option_setb Unexecuted instantiation: oscore.c:coap_option_setb Unexecuted instantiation: oscore_cbor.c:coap_option_setb Unexecuted instantiation: oscore_context.c:coap_option_setb Unexecuted instantiation: oscore_cose.c:coap_option_setb Unexecuted instantiation: oscore_crypto.c:coap_option_setb Unexecuted instantiation: coap_async.c:coap_option_setb Unexecuted instantiation: coap_cache.c:coap_option_setb Unexecuted instantiation: coap_dgrm_posix.c:coap_option_setb Unexecuted instantiation: coap_dtls.c:coap_option_setb Unexecuted instantiation: coap_io.c:coap_option_setb Unexecuted instantiation: coap_io_posix.c:coap_option_setb Unexecuted instantiation: coap_layers.c:coap_option_setb |
429 | | |
430 | | /** |
431 | | * Clears the corresponding bit for @p type in @p filter. This function returns |
432 | | * @c 1 if bit was cleared or @c -1 on error (i.e. bit not set). |
433 | | * |
434 | | * @deprecated Use coap_option_filter_unset() instead. |
435 | | * |
436 | | * @param filter The filter object to change. |
437 | | * @param type The type for which the bit should be cleared. |
438 | | * |
439 | | * @return @c 1 if bit was set, @c -1 otherwise. |
440 | | */ |
441 | | COAP_STATIC_INLINE COAP_DEPRECATED int |
442 | 0 | coap_option_clrb(coap_opt_filter_t *filter, uint16_t type) { |
443 | 0 | return coap_option_filter_unset(filter, type) ? 1 : -1; |
444 | 0 | } Unexecuted instantiation: coap_address.c:coap_option_clrb Unexecuted instantiation: coap_block.c:coap_option_clrb Unexecuted instantiation: coap_debug.c:coap_option_clrb Unexecuted instantiation: coap_encode.c:coap_option_clrb Unexecuted instantiation: coap_mem.c:coap_option_clrb Unexecuted instantiation: coap_net.c:coap_option_clrb Unexecuted instantiation: coap_netif.c:coap_option_clrb Unexecuted instantiation: coap_openssl.c:coap_option_clrb Unexecuted instantiation: coap_option.c:coap_option_clrb Unexecuted instantiation: coap_oscore.c:coap_option_clrb Unexecuted instantiation: coap_pdu.c:coap_option_clrb Unexecuted instantiation: coap_proxy.c:coap_option_clrb Unexecuted instantiation: coap_prng.c:coap_option_clrb Unexecuted instantiation: coap_resource.c:coap_option_clrb Unexecuted instantiation: coap_session.c:coap_option_clrb Unexecuted instantiation: coap_str.c:coap_option_clrb Unexecuted instantiation: coap_strm_posix.c:coap_option_clrb Unexecuted instantiation: coap_subscribe.c:coap_option_clrb Unexecuted instantiation: coap_time.c:coap_option_clrb Unexecuted instantiation: coap_uri.c:coap_option_clrb Unexecuted instantiation: coap_ws.c:coap_option_clrb Unexecuted instantiation: oscore.c:coap_option_clrb Unexecuted instantiation: oscore_cbor.c:coap_option_clrb Unexecuted instantiation: oscore_context.c:coap_option_clrb Unexecuted instantiation: oscore_cose.c:coap_option_clrb Unexecuted instantiation: oscore_crypto.c:coap_option_clrb Unexecuted instantiation: coap_async.c:coap_option_clrb Unexecuted instantiation: coap_cache.c:coap_option_clrb Unexecuted instantiation: coap_dgrm_posix.c:coap_option_clrb Unexecuted instantiation: coap_dtls.c:coap_option_clrb Unexecuted instantiation: coap_io.c:coap_option_clrb Unexecuted instantiation: coap_io_posix.c:coap_option_clrb Unexecuted instantiation: coap_layers.c:coap_option_clrb |
445 | | |
446 | | /** |
447 | | * Gets the corresponding bit for @p type in @p filter. This function returns @c |
448 | | * 1 if the bit is set @c 0 if not. |
449 | | * |
450 | | * @deprecated Use coap_option_filter_get() instead. |
451 | | * |
452 | | * @param filter The filter object to read bit from. |
453 | | * @param type The type for which the bit should be read. |
454 | | * |
455 | | * @return @c 1 if bit was set, @c 0 if not. |
456 | | */ |
457 | | COAP_STATIC_INLINE COAP_DEPRECATED int |
458 | 0 | coap_option_getb(coap_opt_filter_t *filter, uint16_t type) { |
459 | 0 | return coap_option_filter_get(filter, type); |
460 | 0 | } Unexecuted instantiation: coap_address.c:coap_option_getb Unexecuted instantiation: coap_block.c:coap_option_getb Unexecuted instantiation: coap_debug.c:coap_option_getb Unexecuted instantiation: coap_encode.c:coap_option_getb Unexecuted instantiation: coap_mem.c:coap_option_getb Unexecuted instantiation: coap_net.c:coap_option_getb Unexecuted instantiation: coap_netif.c:coap_option_getb Unexecuted instantiation: coap_openssl.c:coap_option_getb Unexecuted instantiation: coap_option.c:coap_option_getb Unexecuted instantiation: coap_oscore.c:coap_option_getb Unexecuted instantiation: coap_pdu.c:coap_option_getb Unexecuted instantiation: coap_proxy.c:coap_option_getb Unexecuted instantiation: coap_prng.c:coap_option_getb Unexecuted instantiation: coap_resource.c:coap_option_getb Unexecuted instantiation: coap_session.c:coap_option_getb Unexecuted instantiation: coap_str.c:coap_option_getb Unexecuted instantiation: coap_strm_posix.c:coap_option_getb Unexecuted instantiation: coap_subscribe.c:coap_option_getb Unexecuted instantiation: coap_time.c:coap_option_getb Unexecuted instantiation: coap_uri.c:coap_option_getb Unexecuted instantiation: coap_ws.c:coap_option_getb Unexecuted instantiation: oscore.c:coap_option_getb Unexecuted instantiation: oscore_cbor.c:coap_option_getb Unexecuted instantiation: oscore_context.c:coap_option_getb Unexecuted instantiation: oscore_cose.c:coap_option_getb Unexecuted instantiation: oscore_crypto.c:coap_option_getb Unexecuted instantiation: coap_async.c:coap_option_getb Unexecuted instantiation: coap_cache.c:coap_option_getb Unexecuted instantiation: coap_dgrm_posix.c:coap_option_getb Unexecuted instantiation: coap_dtls.c:coap_option_getb Unexecuted instantiation: coap_io.c:coap_option_getb Unexecuted instantiation: coap_io_posix.c:coap_option_getb Unexecuted instantiation: coap_layers.c:coap_option_getb |
461 | | |
462 | | #ifdef __cplusplus |
463 | | } |
464 | | #endif |
465 | | |
466 | | #endif /* COAP_OPTION_H_ */ |