OpenDNSSEC-signer  1.4.6
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 "shared/allocator.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 
60  struct in_addr addr;
61  struct in6_addr addr6;
62 };
63 
70  char* port;
71  char* address;
72  int family;
74 };
75 
84  size_t count;
85 };
86 
94 
104 interface_type* listener_push(listener_type* list, char* address, int family,
105  char* port);
106 
113 void listener_print(FILE* fd, listener_type* listener);
114 
120 void listener_log(listener_type* listener);
121 
128 
134 void listener_cleanup(listener_type* listener);
135 
136 #endif /* WIRE_LISTENER_H */
void listener_cleanup(listener_type *listener)
Definition: listener.c:223
void listener_log(listener_type *listener)
Definition: listener.c:189
listener_type * listener_create(allocator_type *allocator)
Definition: listener.c:44
size_t count
Definition: listener.h:84
char * address
Definition: listener.h:71
interface_type * listener_push(listener_type *list, char *address, int family, char *port)
Definition: listener.c:69
interface_type * interfaces
Definition: listener.h:83
void listener_print(FILE *fd, listener_type *listener)
Definition: listener.c:151
union acl_addr_storage addr
Definition: listener.h:73
struct in_addr addr
Definition: listener.h:60
allocator_type * allocator
Definition: listener.h:82
struct in6_addr addr6
Definition: listener.h:61
void interface_cleanup(interface_type *i)
Definition: listener.c:207