libcoap  4.1.1
 All Data Structures Files Functions Variables Typedefs Macros Groups Pages
Macros | Functions
option.c File Reference
#include "config.h"
#include <assert.h>
#include <stdio.h>
#include <string.h>
#include "option.h"
#include "debug.h"

Go to the source code of this file.

Macros

#define ADVANCE_OPT(o, e, step)
 

Functions

coap_opt_toptions_start (coap_pdu_t *pdu)
 Calculates the beginning of the PDU's option section. More...
 
size_t coap_opt_parse (const coap_opt_t *opt, size_t length, coap_option_t *result)
 Parses the option pointed to by opt into result. More...
 
coap_opt_iterator_tcoap_option_iterator_init (coap_pdu_t *pdu, coap_opt_iterator_t *oi, const coap_opt_filter_t filter)
 Initializes the given option iterator oi to point to the beginning of the pdu's option list. More...
 
static int opt_finished (coap_opt_iterator_t *oi)
 
coap_opt_tcoap_option_next (coap_opt_iterator_t *oi)
 Updates the iterator oi to point to the next option. More...
 
coap_opt_tcoap_check_option (coap_pdu_t *pdu, unsigned char type, coap_opt_iterator_t *oi)
 Retrieves the first option of type type from pdu. More...
 
unsigned short coap_opt_delta (const coap_opt_t *opt)
 Decodes the delta value of the next option. More...
 
unsigned short coap_opt_length (const coap_opt_t *opt)
 Returns the length of the given option. More...
 
unsigned char * coap_opt_value (coap_opt_t *opt)
 Returns a pointer to the value of the given option. More...
 
size_t coap_opt_size (const coap_opt_t *opt)
 Returns the size of the given option, taking into account a possible option jump. More...
 
size_t coap_opt_setheader (coap_opt_t *opt, size_t maxlen, unsigned short delta, size_t length)
 Encodes the given delta and length values into opt. More...
 
size_t coap_opt_encode (coap_opt_t *opt, size_t maxlen, unsigned short delta, const unsigned char *val, size_t length)
 Encodes option with given delta into opt. More...
 

Macro Definition Documentation

#define ADVANCE_OPT (   o,
  e,
  step 
)
Value:
if ((e) < step) { \
debug("cannot advance opt past end\n"); \
return 0; \
} else { \
(e) -= step; \
(o) = ((unsigned char *)(o)) + step; \
}
#define debug(...)
Definition: debug.h:55

Function Documentation

size_t coap_opt_parse ( const coap_opt_t opt,
size_t  length,
coap_option_t result 
)

Parses the option pointed to by opt into result.

This function returns the number of bytes that have been parsed, or 0 on error. An error is signaled when illegal delta or length values are encountered or when option parsing would result in reading past the option (i.e. beyond opt + length).

Parameters
optThe beginning of the option to parse.
lengthThe maximum length of opt.
resultA pointer to the coap_option_t structure that is filled with actual values iff coap_opt_parse() > 0.
Returns
The number of bytes parsed or 0 on error.

Definition at line 38 of file option.c.

size_t coap_opt_size ( const coap_opt_t opt)

Returns the size of the given option, taking into account a possible option jump.

Parameters
optAn option jump or the beginning of the option.
Returns
The number of bytes between opt and the end of the option starting at opt. In case of an error, this function returns 0 as options need at least one byte storage space.

Definition at line 319 of file option.c.

static int opt_finished ( coap_opt_iterator_t oi)
inlinestatic

Definition at line 145 of file option.c.

coap_opt_t* options_start ( coap_pdu_t pdu)

Calculates the beginning of the PDU's option section.

Parameters
pduThe PDU containing the options.
Returns
A pointer to the first option if available, or NULL otherwise.

Definition at line 24 of file option.c.