OpenDNSSEC-signer
2.1.6
src
wire
listener.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2011 NLNet Labs. All rights reserved.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions
6
* are met:
7
* 1. Redistributions of source code must retain the above copyright
8
* notice, this list of conditions and the following disclaimer.
9
* 2. Redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution.
12
*
13
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
17
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
19
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
21
* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
22
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
23
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
*
25
*/
26
32
#ifndef WIRE_LISTENER_H
33
#define WIRE_LISTENER_H
34
35
#include "config.h"
36
#include "status.h"
37
38
#include <arpa/inet.h>
39
#include <netdb.h>
40
#include <netinet/in.h>
41
#include <stdio.h>
42
#include <stdint.h>
43
#include <string.h>
44
#include <sys/time.h>
45
#include <sys/types.h>
46
#include <sys/param.h>
47
#include <sys/select.h>
48
#include <sys/socket.h>
49
#include <unistd.h>
50
51
#define DNS_PORT_STRING "53"
52
#define INBUF_SIZE 4096
/* max size for incoming queries */
53
#define MAX_INTERFACES 32
54
59
union
acl_addr_storage
{
60
struct
in_addr
addr
;
61
struct
in6_addr
addr6
;
62
};
63
68
typedef
struct
interface_struct
interface_type
;
69
struct
interface_struct
{
70
char
*
port
;
71
char
*
address
;
72
int
family
;
73
union
acl_addr_storage
addr
;
74
};
75
80
typedef
struct
listener_struct
listener_type
;
81
struct
listener_struct
{
82
interface_type
*
interfaces
;
83
size_t
count
;
84
};
85
92
listener_type
*
listener_create
(
void
);
93
103
interface_type
*
listener_push
(
listener_type
* list,
char
* address,
int
family,
104
const
char
* port);
105
111
void
interface_cleanup
(
interface_type
* i);
112
118
void
listener_cleanup
(
listener_type
* listener);
119
120
#endif
/* WIRE_LISTENER_H */
listener_struct::interfaces
interface_type * interfaces
Definition:
listener.h:82
acl_addr_storage
Definition:
listener.h:59
listener_struct
Definition:
listener.h:81
interface_struct::port
char * port
Definition:
listener.h:70
interface_cleanup
void interface_cleanup(interface_type *i)
Definition:
listener.c:111
listener_push
interface_type * listener_push(listener_type *list, char *address, int family, const char *port)
Definition:
listener.c:60
interface_struct::addr
union acl_addr_storage addr
Definition:
listener.h:73
acl_addr_storage::addr6
struct in6_addr addr6
Definition:
listener.h:61
acl_addr_storage::addr
struct in_addr addr
Definition:
listener.h:60
interface_struct::address
char * address
Definition:
listener.h:71
listener_cleanup
void listener_cleanup(listener_type *listener)
Definition:
listener.c:126
listener_struct::count
size_t count
Definition:
listener.h:83
interface_struct::family
int family
Definition:
listener.h:72
listener_create
listener_type * listener_create(void)
Definition:
listener.c:45
interface_struct
Definition:
listener.h:69
Generated by
1.8.18