OpenDNSSEC-signer 2.1.13
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.

Referenced by sock_handle_tcp_read().

◆ UDP_MAX_MESSAGE_LEN

#define UDP_MAX_MESSAGE_LEN   512

Query.

Definition at line 42 of file query.h.

Referenced by query_create(), and sock_handle_udp().

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

◆ query_add_rr()

int query_add_rr ( query_type * q,
ldns_rr * rr )
extern

Add RR to query.

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

Add RR to query.

Definition at line 1041 of file query.c.

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

Referenced by axfr(), ixfr(), and soa_request().

◆ query_cleanup()

void query_cleanup ( query_type * q)
extern

Cleanup query.

Parameters
[in]qquery

Cleanup query.

Definition at line 1098 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(), query_create(), and sock_handle_tcp_accept().

◆ query_create()

query_type * query_create ( void )
extern

◆ query_prepare()

◆ query_process()

◆ query_reset()