OpenDNSSEC-signer 2.1.13
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
60 struct in_addr addr;
61 struct in6_addr addr6;
62};
63
70 char* port;
71 char* address;
72 int family;
74};
75
85
92extern listener_type* listener_create(void);
93
103extern interface_type* listener_push(listener_type* list, char* address, int family,
104 const char* port);
105
111extern void interface_cleanup(interface_type* i);
112
118extern void listener_cleanup(listener_type* listener);
119
120#endif /* WIRE_LISTENER_H */
void listener_cleanup(listener_type *listener)
Definition listener.c:126
void interface_cleanup(interface_type *i)
Definition listener.c:111
listener_type * listener_create(void)
Definition listener.c:45
interface_type * listener_push(listener_type *list, char *address, int family, const char *port)
Definition listener.c:60
union acl_addr_storage addr
Definition listener.h:73
interface_type * interfaces
Definition listener.h:82
struct in_addr addr
Definition listener.h:60
struct in6_addr addr6
Definition listener.h:61