edns.c File Reference
`#include "config.h"`
`#include "compat.h"`
`#include "wire/buffer.h"`
`#include "wire/edns.h"`
`#include <ldns/ldns.h>`

Go to the source code of this file.

## Functions

edns_rr_type * | edns_rr_create ()
void | edns_init (edns_data_type *data, uint16_t max_length)
void | edns_rr_reset (edns_rr_type *err)
int | edns_rr_parse (edns_rr_type *err, buffer_type *buffer)
size_t | edns_rr_reserved_space (edns_rr_type *err)
void | edns_rr_cleanup (edns_rr_type *err)

## Function Documentation

## edns_init()

void edns_init | ( | edns_data_type * | data,
|  | uint16_t | max_length )

Initialize EDNS.

Definition at line 64 of file edns.c.

References edns_data_struct::error, and edns_data_struct::ok.

## edns_rr_cleanup()

void edns_rr_cleanup | ( | edns_rr_type * | err | ) |

Definition at line 172 of file edns.c.

Referenced by query_cleanup().

## edns_rr_create()

edns_rr_type * edns_rr_create | ( | void |  | ) |

Create new EDNS RR.

Definition at line 50 of file edns.c.

References edns_rr_reset().

Referenced by query_create().

## edns_rr_parse()

int edns_rr_parse | ( | edns_rr_type * | err,
|  | buffer_type * | buffer )

Parse EDNS OPT RR.

Definition at line 107 of file edns.c.

References buffer_available(), buffer_position(), buffer_read_u16(), buffer_read_u8(), buffer_set_position(), buffer_skip(), edns_rr_struct::dnssec_ok, DNSSEC_OK_MASK, EDNS_ERROR, EDNS_OK, edns_rr_struct::maxlen, OPT_LEN, OPT_RDATA, edns_rr_struct::position, and edns_rr_struct::status.

## edns_rr_reserved_space()

size_t edns_rr_reserved_space | ( | edns_rr_type * | err | ) |

The amount of space to reserve in the response for the EDNS data.

Definition at line 162 of file edns.c.

References EDNS_NOT_PRESENT, OPT_LEN, OPT_RDATA, and edns_rr_struct::status.

Referenced by query_prepare().

## edns_rr_reset()

void edns_rr_reset | ( | edns_rr_type * | err | ) |

Reset EDNS OPT RR.

Definition at line 90 of file edns.c.

References edns_rr_struct::dnssec_ok, EDNS_NOT_PRESENT, edns_rr_struct::maxlen, edns_rr_struct::position, and edns_rr_struct::status.

Referenced by edns_rr_create(), and query_reset().