OpenDNSSEC-signer
1.4.8.2
|
#include "config.h"
#include "daemon/dnshandler.h"
#include "daemon/engine.h"
#include "shared/file.h"
#include "shared/util.h"
#include "wire/axfr.h"
#include "wire/query.h"
Go to the source code of this file.
Functions | |
query_type * | query_create (void) |
void | query_reset (query_type *q, size_t maxlen, int is_tcp) |
void | query_prepare (query_type *q) |
query_state | query_process (query_type *q, void *engine) |
void | query_add_optional (query_type *q, void *engine) |
int | query_add_rr (query_type *q, ldns_rr *rr) |
void | query_cleanup (query_type *q) |
Variables | |
const char * | query_str = "query" |
void query_add_optional | ( | query_type * | q, |
void * | engine | ||
) |
Add optional RRs to query.
First EDNS
Then TSIG
Definition at line 960 of file query.c.
References query_struct::buffer, buffer_pkt_arcount(), buffer_pkt_set_arcount(), buffer_position(), buffer_write(), edns_rr_struct::dnssec_ok, engine_struct::edns, EDNS_ERROR, EDNS_NOT_PRESENT, EDNS_OK, query_struct::edns_rr, edns_data_struct::error, tsig_rr_struct::error_code, ods_log_debug(), edns_data_struct::ok, OPT_LEN, OPT_RDATA, query_str, edns_data_struct::rdata_none, edns_rr_struct::status, tsig_rr_struct::status, TSIG_ERROR, TSIG_NOT_PRESENT, TSIG_OK, query_struct::tsig_prepare_it, query_struct::tsig_rr, tsig_rr_append(), tsig_rr_error(), tsig_rr_prepare(), tsig_rr_sign(), tsig_rr_update(), query_struct::tsig_sign_it, and query_struct::tsig_update_it.
Referenced by sock_handle_tcp_read(), sock_handle_tcp_write(), and sock_handle_udp().
int query_add_rr | ( | query_type * | q, |
ldns_rr * | rr | ||
) |
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(), buffer_write_u32(), and ods_log_assert.
Referenced by axfr(), ixfr(), and soa_request().
void query_cleanup | ( | query_type * | q | ) |
Cleanup query.
Definition at line 1098 of file query.c.
References query_struct::allocator, allocator_cleanup(), allocator_deallocate(), query_struct::axfr_fd, query_struct::buffer, buffer_cleanup(), ods_fclose(), query_struct::tsig_rr, and tsig_rr_cleanup().
Referenced by dnshandler_cleanup(), query_create(), sock_handle_tcp_accept(), and sock_handle_udp().
query_type* query_create | ( | void | ) |
Create query.
Definition at line 48 of file query.c.
References query_struct::allocator, allocator_alloc(), allocator_cleanup(), allocator_create(), query_struct::axfr_fd, query_struct::buffer, buffer_create(), query_struct::edns_rr, edns_rr_create(), PACKET_BUFFER_SIZE, query_cleanup(), query_reset(), query_struct::tsig_rr, tsig_rr_create(), and UDP_MAX_MESSAGE_LEN.
Referenced by dnshandler_create(), and sock_handle_tcp_accept().
void query_prepare | ( | query_type * | q | ) |
Prepare response.
Definition at line 614 of file query.c.
References acl_find(), ADAPTER_DNS, query_struct::addr, zone_struct::adoutbound, axfr(), query_struct::buffer, buffer_capacity(), buffer_clear(), buffer_limit(), buffer_pkt_ancount(), buffer_pkt_arcount(), buffer_pkt_flags(), BUFFER_PKT_HEADER_SIZE, buffer_pkt_nscount(), buffer_pkt_qdcount(), buffer_pkt_set_arcount(), buffer_pkt_set_flags(), buffer_pkt_tc(), buffer_position(), buffer_set_limit(), buffer_set_position(), buffer_skip_rr(), adapter_struct::config, EDNS_ERROR, EDNS_MAX_MESSAGE_LEN, EDNS_OK, query_struct::edns_rr, edns_rr_parse(), edns_rr_reserved_space(), ixfr(), query_struct::maxlen, edns_rr_struct::maxlen, zone_struct::name, ods_log_assert, ods_log_debug(), ods_log_error(), edns_rr_struct::position, tsig_rr_struct::position, dnsout_struct::provide_xfr, QUERY_DISCARDED, query_prepare(), query_str, query_struct::reserved_space, rrset_type2str(), query_struct::serial, soa_request(), edns_rr_struct::status, tsig_rr_struct::status, query_struct::tcp, TSIG_ERROR, TSIG_NOT_PRESENT, TSIG_OK, query_struct::tsig_rr, tsig_rr_lookup(), tsig_rr_parse(), tsig_rr_prepare(), tsig_rr_reserved_space(), tsig_rr_update(), tsig_rr_verify(), adapter_struct::type, UDP_MAX_MESSAGE_LEN, and query_struct::zone.
Referenced by axfr(), ixfr(), and query_prepare().
query_state query_process | ( | query_type * | q, |
void * | engine | ||
) |
Process query.
Definition at line 845 of file query.c.
References query_struct::buffer, buffer_current(), buffer_limit(), BUFFER_PKT_HEADER_SIZE, buffer_pkt_qr(), buffer_position(), buffer_remaining(), lock_basic_lock, lock_basic_unlock, query_struct::maxlen, zone_struct::name, ods_log_assert, ods_log_debug(), ods_log_error(), ods_log_warning(), QUERY_DISCARDED, QUERY_PROCESSED, query_str, query_struct::reserved_space, tsig_rr_struct::status, query_struct::tsig_rr, tsig_status2str(), zonelist_struct::zl_lock, zone_struct::zl_status, query_struct::zone, ZONE_ZL_ADDED, engine_struct::zonelist, and zonelist_lookup_zone_by_dname().
Referenced by sock_handle_tcp_read(), and sock_handle_udp().
void query_reset | ( | query_type * | q, |
size_t | maxlen, | ||
int | is_tcp | ||
) |
Reset query.
Definition at line 90 of file query.c.
References acl_find(), ADAPTER_DNS, query_struct::addr, addr2ip(), query_struct::addrlen, zone_struct::adinbound, dnsin_struct::allow_notify, zone_struct::apex, query_struct::axfr_fd, query_struct::axfr_is_done, query_struct::buffer, buffer_available(), buffer_begin(), buffer_capacity(), buffer_clear(), buffer_limit(), buffer_pkt_aa(), buffer_pkt_ad(), buffer_pkt_ancount(), buffer_pkt_cd(), buffer_pkt_flags(), BUFFER_PKT_HEADER_SIZE, buffer_pkt_nscount(), buffer_pkt_opcode(), buffer_pkt_qdcount(), buffer_pkt_qr(), buffer_pkt_ra(), buffer_pkt_rcode(), buffer_pkt_rd(), buffer_pkt_set_aa(), buffer_pkt_set_ancount(), buffer_pkt_set_arcount(), buffer_pkt_set_flags(), buffer_pkt_set_nscount(), buffer_pkt_set_opcode(), buffer_pkt_set_qdcount(), buffer_pkt_set_qr(), buffer_pkt_set_rcode(), buffer_pkt_tc(), buffer_position(), buffer_read_u16(), buffer_read_u32(), buffer_remaining(), buffer_set_limit(), buffer_set_position(), buffer_skip(), buffer_skip_dname(), buffer_skip_rr(), buffer_write(), adapter_struct::config, engine_struct::dnshandler, dnshandler_fwd_notify(), edns_rr_struct::dnssec_ok, query_struct::edns_rr, edns_rr_reserved_space(), edns_rr_reset(), lock_basic_lock, lock_basic_unlock, query_struct::maxlen, zone_struct::name, ods_fclose(), ods_log_assert, ods_log_debug(), ods_log_error(), ods_log_info(), ods_log_verbose(), QUERY_DISCARDED, QUERY_PROCESSED, query_str, query_struct::reserved_space, rrsig_struct::rr, rr_struct::rr, rrset_struct::rr_count, rrset_struct::rrs, response_struct::rrset_count, response_struct::rrsets, rrset_struct::rrsig_count, rrset_struct::rrsigs, response_struct::sections, query_struct::serial, xfrd_struct::serial_disk, xfrd_struct::serial_lock, xfrd_struct::serial_notify, xfrd_struct::serial_notify_acquired, query_struct::startpos, query_struct::tcp, time_now(), query_struct::tsig_prepare_it, query_struct::tsig_rr, tsig_rr_reserved_space(), tsig_rr_reset(), query_struct::tsig_sign_it, query_struct::tsig_update_it, adapter_struct::type, util_serial_gt(), zone_struct::xfrd, xfrd_set_timer_now(), query_struct::zone, zone_struct::zone_lock, and zone_lookup_rrset().
Referenced by query_create(), sock_handle_tcp_read(), and sock_handle_udp().
const char* query_str = "query" |
Query.
Definition at line 40 of file query.c.
Referenced by query_add_optional(), query_prepare(), query_process(), and query_reset().