OpenDNSSEC-signer  2.1.6
Data Structures | Macros | Typedefs | Enumerations | Functions
edns.h File Reference
#include "config.h"
#include "status.h"
#include "wire/buffer.h"
#include <ldns/ldns.h>

Go to the source code of this file.

Data Structures

struct  edns_data_struct
 
struct  edns_rr_struct
 

Macros

#define OPT_LEN   9U /* length of the NSD EDNS response record minus 2 */
 
#define OPT_RDATA   2 /* holds the rdata length comes after OPT_LEN */
 
#define DNSSEC_OK_MASK   0x8000U /* do bit mask */
 
#define EDNS_MAX_MESSAGE_LEN   4096
 

Typedefs

typedef struct edns_data_struct edns_data_type
 
typedef enum edns_status_enum edns_status
 
typedef struct edns_rr_struct edns_rr_type
 

Enumerations

enum  edns_status_enum { EDNS_NOT_PRESENT, EDNS_OK, EDNS_ERROR }
 

Functions

void edns_init (edns_data_type *data, uint16_t max_length)
 
edns_rr_typeedns_rr_create (void)
 
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)
 

Macro Definition Documentation

◆ DNSSEC_OK_MASK

#define DNSSEC_OK_MASK   0x8000U /* do bit mask */

Definition at line 46 of file edns.h.

◆ EDNS_MAX_MESSAGE_LEN

#define EDNS_MAX_MESSAGE_LEN   4096

Definition at line 48 of file edns.h.

◆ OPT_LEN

#define OPT_LEN   9U /* length of the NSD EDNS response record minus 2 */

EDNS.

Definition at line 44 of file edns.h.

◆ OPT_RDATA

#define OPT_RDATA   2 /* holds the rdata length comes after OPT_LEN */

Definition at line 45 of file edns.h.

Typedef Documentation

◆ edns_data_type

EDNS data.

Definition at line 1 of file edns.h.

◆ edns_rr_type

typedef struct edns_rr_struct edns_rr_type

EDNS RR.

Definition at line 1 of file edns.h.

◆ edns_status

Definition at line 1 of file edns.h.

Enumeration Type Documentation

◆ edns_status_enum

EDNS status.

Enumerator
EDNS_NOT_PRESENT 
EDNS_OK 
EDNS_ERROR 

Definition at line 64 of file edns.h.

Function Documentation

◆ edns_init()

void edns_init ( edns_data_type data,
uint16_t  max_length 
)

Initialize EDNS.

Parameters
[in]dataEDNS data.
[in]max_lengthmaximum 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 ( )

Create new EDNS RR.

Parameters
[in]allocatormemory allocator.
Returns
edns_rr_type* EDNS RR.

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.

Parameters
[in]errEDNS record.
[in]bufferpacket buffer.
Returns
int 1 if EDNS and valid, 0 otherwise.

Parse EDNS OPT RR.

Definition at line 107 of file edns.c.

◆ 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.

Parameters
[in]errEDNS record.
Returns
size_t amount of space to reserve.

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.

Parameters
[in]errEDNS record.

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().