OpenDNSSEC-signer  2.1.3
Data Structures | Macros | Typedefs | Enumerations | Functions
query.h File Reference
#include "config.h"
#include "status.h"
#include "signer/zone.h"
#include "wire/buffer.h"
#include "wire/edns.h"
#include "wire/tsig.h"

Go to the source code of this file.

Data Structures

struct  query_struct
 
struct  response_struct
 

Macros

#define UDP_MAX_MESSAGE_LEN   512
 
#define TCP_MAX_MESSAGE_LEN   65535
 
#define QUERY_RESPONSE_MAX_RRSET   10 /* should be enough */
 

Typedefs

typedef enum query_enum query_state
 
typedef struct query_struct query_type
 
typedef struct response_struct response_type
 

Enumerations

enum  query_enum { QUERY_PROCESSED = 0, QUERY_DISCARDED, QUERY_AXFR, QUERY_IXFR }
 

Functions

query_typequery_create (void)
 
void query_prepare (query_type *q)
 
query_state query_process (query_type *q, engine_type *engine)
 
void query_reset (query_type *q, size_t maxlen, int is_tcp)
 
void query_add_optional (query_type *q, engine_type *engine)
 
int query_add_rr (query_type *q, ldns_rr *rr)
 
void query_cleanup (query_type *q)
 

Macro Definition Documentation

◆ QUERY_RESPONSE_MAX_RRSET

#define QUERY_RESPONSE_MAX_RRSET   10 /* should be enough */

Definition at line 44 of file query.h.

◆ TCP_MAX_MESSAGE_LEN

#define TCP_MAX_MESSAGE_LEN   65535

Definition at line 43 of file query.h.

◆ UDP_MAX_MESSAGE_LEN

#define UDP_MAX_MESSAGE_LEN   512

Query.

Definition at line 42 of file query.h.

Referenced by query_create().

Typedef Documentation

◆ query_state

typedef enum query_enum query_state

Definition at line 52 of file query.h.

◆ query_type

typedef struct query_struct query_type

Query.

Definition at line 58 of file query.h.

◆ response_type

Response.

Definition at line 95 of file query.h.

Enumeration Type Documentation

◆ query_enum

enum query_enum
Enumerator
QUERY_PROCESSED 
QUERY_DISCARDED 
QUERY_AXFR 
QUERY_IXFR 

Definition at line 46 of file query.h.

Function Documentation

◆ query_add_optional()

void query_add_optional ( query_type q,
engine_type engine 
)

◆ query_add_rr()

int query_add_rr ( query_type q,
ldns_rr *  rr 
)

Add RR to query.

Parameters
[in]qquery
[in]rrRR
Returns
int 1 if ok, 0 if overflow.

Add RR to query.

Definition at line 1035 of file query.c.

References query_struct::buffer, buffer_available(), buffer_position(), buffer_skip(), buffer_write_rdf(), buffer_write_u16(), and buffer_write_u32().

◆ query_cleanup()

void query_cleanup ( query_type q)

Cleanup query.

Parameters
[in]qquery

Cleanup query.

Definition at line 1092 of file query.c.

References query_struct::axfr_fd, query_struct::buffer, buffer_cleanup(), query_struct::edns_rr, edns_rr_cleanup(), query_struct::tsig_rr, and tsig_rr_cleanup().

Referenced by dnshandler_cleanup(), and query_create().

◆ query_create()

query_type* query_create ( void  )

◆ query_prepare()

void query_prepare ( query_type q)

◆ query_process()

query_state query_process ( query_type q,
engine_type engine 
)

Process query.

Parameters
[in]qquery
[in]enginesigner engine
Returns
query_state state of the query

Process query.

Definition at line 842 of file query.c.

References query_struct::buffer, buffer_current(), buffer_limit(), BUFFER_PKT_HEADER_SIZE, buffer_pkt_qr(), buffer_remaining(), QUERY_DISCARDED, and query_str.

◆ query_reset()

void query_reset ( query_type q,
size_t  maxlen,
int  is_tcp 
)