acl.h File Reference
`#include "config.h"`
`#include "status.h"`
`#include "wire/listener.h"`
`#include "wire/tsig.h"`

Go to the source code of this file.

## Data Structures

struct | acl_struct

## Typedefs

typedef enum acl_range_enum | acl_range_type
typedef struct acl_struct | acl_type

## Enumerations

enum | acl_range_enum { ACL_RANGE_SINGLE = 0 , ACL_RANGE_MASK = 1 , ACL_RANGE_SUBNET = 2 , ACL_RANGE_MINMAX = 3 }

## Functions

acl_type * | acl_create (char *address, char *port, char *tsig_name, tsig_type *tsig)
acl_type * | acl_find (acl_type *acl, struct sockaddr_storage *addr, tsig_rr_type *tsig)
int | acl_parse_family (const char *a)
int | addr2ip (struct sockaddr_storage addr, char *ip, size_t len)
void | acl_cleanup (acl_type *acl)

## Typedef Documentation

## acl_range_type

typedef enum acl_range_enum acl_range_type

Definition at line 51 of file acl.h.

## acl_type

typedef struct acl_struct acl_type

ACL.

Definition at line 57 of file acl.h.

## Enumeration Type Documentation

## acl_range_enum

enum acl_range_enum

Access Control List. Address range type.

Enumerator
ACL_RANGE_SINGLE |
ACL_RANGE_MASK |
ACL_RANGE_SUBNET |
ACL_RANGE_MINMAX |

Definition at line 45 of file acl.h.

## Function Documentation

## acl_cleanup()

void acl_cleanup | ( | acl_type * | acl | ) |

extern

Clean up ACL.

Parameters

  [in] | acl | ACL
  [in] | allocator | memory allocator

Clean up ACL.

Definition at line 456 of file acl.c.

References acl_cleanup(), acl_struct::address, and acl_struct::next.

Referenced by acl_cleanup(), acl_create(), dnsin_cleanup(), and dnsout_cleanup().

## acl_create()

acl_type * acl_create | ( | char * | address,
|  | char * | port,
|  | char * | tsig_name,
|  | tsig_type * | tsig )

extern

Create ACL.

Parameters

  [in] | allocator | memory allocator
  [in] | address | IP address
  [in] | port | port
  [in] | tsig_name | TSIG name
  [in] | tsig | list of TSIGs

Returns
  acl_type* ACL

Create ACL.

Definition at line 126 of file acl.c.

References acl_cleanup(), acl_parse_family(), ACL_RANGE_MASK, ACL_RANGE_MINMAX, ACL_RANGE_SUBNET, acl_addr_storage::addr, acl_struct::addr, acl_addr_storage::addr6, acl_struct::address, acl_struct::family, acl_struct::ixfr_disabled, acl_struct::next, acl_struct::port, acl_struct::range_mask, acl_struct::range_type, acl_struct::tsig, and tsig_lookup_by_name().

## acl_find()

acl_type * acl_find | ( | acl_type * | acl,
|  | struct sockaddr_storage * | addr,
|  | tsig_rr_type * | trr )

extern

Find ACL.

Parameters

  [in] | acl | ACL
  [in] | addr | remote address storage
  [in] | tsig | tsig credentials

Returns
  acl_type* ACL that matches

Find ACL.

Definition at line 437 of file acl.c.

References acl_struct::address, and acl_struct::next.

## acl_parse_family()

int acl_parse_family | ( | const char * | a | ) |

extern

Parse family from address.

Parameters

  [in] | a | address in string format

Returns
  int address family

Parse family from address.

Definition at line 104 of file acl.c.

Referenced by acl_create(), and parse_conf_listener().

## addr2ip()

int addr2ip | ( | struct sockaddr_storage | addr,
|  | char * | ip,
|  | size_t | len )

extern

Address storage to IP string.

Parameters

  [in] | addr | socket address storage
  [out] | ip | ip address
  [in] | len | max strlen of ip address

Returns
  int 0 if failed, 1 otherwise

Address storage to IP string.

Definition at line 416 of file acl.c.