xfrd.h File Reference
`#include "config.h"`
`#include <stdint.h>`
`#include <time.h>`
`#include "locks.h"`
`#include "status.h"`
`#include "wire/acl.h"`
`#include "wire/buffer.h"`
`#include "wire/netio.h"`
`#include "wire/tsig.h"`
`#include "daemon/xfrhandler.h"`

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_type * | xfrd_create (xfrhandler_type *xfrhandler, zone_type *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, int backup)

## Macro Definition Documentation

## XFRD_MAX_ROUNDS

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

Definition at line 65 of file xfrd.h.

## XFRD_MAX_UDP

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

Definition at line 66 of file xfrd.h.

## XFRD_NO_IXFR_CACHE

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

Definition at line 67 of file xfrd.h.

## XFRD_TCP_TIMEOUT

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

Definition at line 68 of file xfrd.h.

## XFRD_UDP_TIMEOUT

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

Definition at line 69 of file xfrd.h.

## Typedef Documentation

## soa_type

typedef struct soa_struct soa_type

Definition at line 53 of file xfrd.h.

## xfrd_pkt_status

typedef enum xfrd_pkt_enum xfrd_pkt_status

Definition at line 51 of file xfrd.h.

## xfrd_type

typedef struct xfrd_struct xfrd_type

Definition at line 55 of file xfrd.h.

## Enumeration Type Documentation

## xfrd_pkt_enum

enum xfrd_pkt_enum

Zone transfers. Packet status.

Enumerator
XFRD_PKT_BAD |
XFRD_PKT_MORE |
XFRD_PKT_NOTIMPL |
XFRD_PKT_TC |
XFRD_PKT_XFR |
XFRD_PKT_NEWLEASE |

Definition at line 43 of file xfrd.h.

## Function Documentation

## xfrd_acl_sockaddr_to()

socklen_t xfrd_acl_sockaddr_to | ( | acl_type * | acl,
|  | struct sockaddr_storage * | to
| ) |  |

extern

Use acl address to setup remote sockaddr struct.

Parameters

  [in] | acl | acl
  [in] | to | remote address storage

Returns
  socklen_t length of address

Use acl address to setup remote sockaddr struct.

Definition at line 537 of file xfrd.c.

References DNS_PORT_STRING, and acl_struct::port.

## xfrd_cleanup()

void xfrd_cleanup | ( | xfrd_type * | xfrd,
|  | int | backup
| ) |  |

extern

Cleanup zone transfer structure.

Parameters

  [in] | xfrd | zone transfer structure.
  [in] | backup | backup transfer variables.

Cleanup zone transfer structure.

Definition at line 2179 of file xfrd.c.

References xfrd_struct::rw_lock, xfrd_struct::serial_lock, xfrd_struct::tsig_rr, and tsig_rr_cleanup().

Referenced by xfrd_create(), and zone_cleanup().

## xfrd_create()

xfrd_type * xfrd_create | ( | xfrhandler_type * | xfrhandler,
|  | zone_type * | zone
| ) |  |

extern

Create zone transfer structure.

Parameters

  [in] | xfrhandler | zone transfer handler
  [in] | zone | zone reference

Returns
  xfrd_type* zone transfer structure.

Create zone transfer structure.

Definition at line 315 of file xfrd.c.

References netio_handler_struct::event_handler, netio_handler_struct::event_types, soa_struct::expire, netio_handler_struct::fd, xfrd_struct::handler, xfrd_struct::master, xfrd_struct::master_num, soa_struct::minimum, soa_struct::mname, xfrd_struct::msg_do_retransfer, 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, 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_retransfer, 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.

## xfrd_set_timer_now()

void xfrd_set_timer_now | ( | xfrd_type * | xfrd | ) |

Set timeout for zone transfer to now.

Parameters

  [in] | xfrd | zone transfer structure.

Set timeout for zone transfer to now.

Definition at line 454 of file xfrd.c.

References zone_struct::name, xfrd_struct::xfrhandler, and xfrd_struct::zone.

## xfrd_set_timer_refresh()

void xfrd_set_timer_refresh | ( | xfrd_type * | xfrd | ) |

Set timeout for zone transfer to REFRESH.

Parameters

  [in] | xfrd | zone transfer structure.

Set timeout for zone transfer to REFRESH.

Definition at line 490 of file xfrd.c.

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

## xfrd_set_timer_retry()

void xfrd_set_timer_retry | ( | xfrd_type * | xfrd | ) |

Set timeout for zone transfer to RETRY.

Parameters

  [in] | xfrd | zone transfer structure.

Set timeout for zone transfer to RETRY.

Definition at line 472 of file xfrd.c.

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