OpenDNSSEC-signer  1.4.1
Data Structures | Macros | Typedefs | Enumerations | Functions
xfrd.h File Reference
#include "config.h"
#include "shared/allocator.h"
#include "shared/locks.h"
#include "shared/status.h"
#include "wire/acl.h"
#include "wire/buffer.h"
#include "wire/netio.h"
#include "wire/tsig.h"
#include <stdint.h>
#include <time.h>
Include dependency graph for xfrd.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  soa_struct
 
struct  xfrd_struct
 

Macros

#define XFRD_MAX_ROUNDS   3 /* max number of rounds along the masters */
 
#define XFRD_MAX_UDP   100 /* max number of udp sockets at a time for ixfr */
 
#define XFRD_NO_IXFR_CACHE   172800 /* 48h before retrying ixfr after notimpl */
 
#define XFRD_TCP_TIMEOUT   120 /* seconds, before a tcp request times out */
 
#define XFRD_UDP_TIMEOUT   5 /* seconds, before a udp request times out */
 

Typedefs

typedef enum xfrd_pkt_enum xfrd_pkt_status
 
typedef struct soa_struct soa_type
 
typedef struct xfrd_struct xfrd_type
 

Enumerations

enum  xfrd_pkt_enum {
  XFRD_PKT_BAD, XFRD_PKT_MORE, XFRD_PKT_NOTIMPL, XFRD_PKT_TC,
  XFRD_PKT_XFR, XFRD_PKT_NEWLEASE
}
 

Functions

xfrd_typexfrd_create (void *xfrhandler, void *zone)
 
void xfrd_set_timer_now (xfrd_type *xfrd)
 
void xfrd_set_timer_retry (xfrd_type *xfrd)
 
void xfrd_set_timer_refresh (xfrd_type *xfrd)
 
socklen_t xfrd_acl_sockaddr_to (acl_type *acl, struct sockaddr_storage *to)
 
void xfrd_cleanup (xfrd_type *xfrd)
 

Macro Definition Documentation

#define XFRD_MAX_ROUNDS   3 /* max number of rounds along the masters */

Zone transfers.

Definition at line 49 of file xfrd.h.

#define XFRD_MAX_UDP   100 /* max number of udp sockets at a time for ixfr */

Definition at line 50 of file xfrd.h.

#define XFRD_NO_IXFR_CACHE   172800 /* 48h before retrying ixfr after notimpl */

Definition at line 51 of file xfrd.h.

#define XFRD_TCP_TIMEOUT   120 /* seconds, before a tcp request times out */

Definition at line 52 of file xfrd.h.

Referenced by sock_handle_tcp_accept(), sock_handle_tcp_read(), and sock_handle_tcp_write().

#define XFRD_UDP_TIMEOUT   5 /* seconds, before a udp request times out */

Definition at line 53 of file xfrd.h.

Typedef Documentation

typedef struct soa_struct soa_type

Definition at line 72 of file xfrd.h.

Definition at line 67 of file xfrd.h.

typedef struct xfrd_struct xfrd_type

Zone transfer state.

Definition at line 92 of file xfrd.h.

Enumeration Type Documentation

Packet status.

Enumerator
XFRD_PKT_BAD 
XFRD_PKT_MORE 
XFRD_PKT_NOTIMPL 
XFRD_PKT_TC 
XFRD_PKT_XFR 
XFRD_PKT_NEWLEASE 

Definition at line 59 of file xfrd.h.

Function Documentation

socklen_t xfrd_acl_sockaddr_to ( acl_type acl,
struct sockaddr_storage *  to 
)

Use acl address to setup remote sockaddr struct.

Parameters
[in]aclacl
[in]toremote address storage
Returns
socklen_t length of address

Use acl address to setup remote sockaddr struct.

Definition at line 327 of file xfrd.c.

References DNS_PORT_STRING, and acl_struct::port.

void xfrd_cleanup ( xfrd_type xfrd)

Cleanup zone transfer structure.

Parameters
[in]xfrdzone transfer structure.

Cleanup zone transfer structure.

Definition at line 1776 of file xfrd.c.

References xfrd_struct::allocator, allocator_cleanup(), allocator_deallocate(), lock_basic_destroy, xfrd_struct::rw_lock, xfrd_struct::serial_lock, xfrd_struct::tsig_rr, and tsig_rr_cleanup().

Referenced by xfrd_create(), and zone_cleanup().

xfrd_type* xfrd_create ( void *  xfrhandler,
void *  zone 
)

Create zone transfer structure.

Parameters
[in]xfrhandlerzone transfer handler
[in]zonezone reference
Returns
xfrd_type* zone transfer structure.

Create zone transfer structure.

Definition at line 97 of file xfrd.c.

References xfrd_struct::allocator, allocator_alloc(), allocator_cleanup(), allocator_create(), netio_handler_struct::event_handler, netio_handler_struct::event_types, soa_struct::expire, netio_handler_struct::fd, xfrd_struct::handler, lock_basic_init, lock_basic_lock, lock_basic_unlock, xfrd_struct::master, xfrd_struct::master_num, soa_struct::minimum, soa_struct::mname, xfrd_struct::msg_is_ixfr, xfrd_struct::msg_new_serial, xfrd_struct::msg_old_serial, xfrd_struct::msg_rr_count, xfrd_struct::msg_seq_nr, NETIO_EVENT_READ, NETIO_EVENT_TIMEOUT, xfrd_struct::next_master, ods_log_error(), xfrd_struct::query_id, soa_struct::refresh, soa_struct::retry, soa_struct::rname, xfrd_struct::round_num, xfrd_struct::rw_lock, soa_struct::serial, xfrd_struct::serial_disk, xfrd_struct::serial_disk_acquired, xfrd_struct::serial_lock, xfrd_struct::serial_notify, xfrd_struct::serial_notify_acquired, xfrd_struct::serial_xfr, xfrd_struct::serial_xfr_acquired, xfrd_struct::soa, xfrd_struct::tcp_conn, xfrd_struct::tcp_waiting, xfrd_struct::tcp_waiting_next, netio_handler_struct::timeout, xfrd_struct::tsig_rr, tsig_rr_create(), soa_struct::ttl, xfrd_struct::udp_waiting, xfrd_struct::udp_waiting_next, netio_handler_struct::user_data, xfrd_cleanup(), xfrd_struct::xfrhandler, and xfrd_struct::zone.

void xfrd_set_timer_now ( xfrd_type xfrd)

Set timeout for zone transfer to now.

Parameters
[in]xfrdzone transfer structure.

Set timeout for zone transfer to now.

Definition at line 241 of file xfrd.c.

References zone_struct::name, ods_log_debug(), xfrd_struct::xfrhandler, and xfrd_struct::zone.

void xfrd_set_timer_refresh ( xfrd_type xfrd)

Set timeout for zone transfer to REFRESH.

Parameters
[in]xfrdzone transfer structure.

Set timeout for zone transfer to REFRESH.

Definition at line 279 of file xfrd.c.

References zone_struct::name, ods_log_debug(), soa_struct::refresh, xfrd_struct::soa, xfrd_struct::xfrhandler, and xfrd_struct::zone.

void xfrd_set_timer_retry ( xfrd_type xfrd)

Set timeout for zone transfer to RETRY.

Parameters
[in]xfrdzone transfer structure.

Set timeout for zone transfer to RETRY.

Definition at line 260 of file xfrd.c.

References zone_struct::name, ods_log_debug(), soa_struct::retry, xfrd_struct::soa, xfrd_struct::xfrhandler, and xfrd_struct::zone.