OpenDNSSEC-signer 2.1.10
dnshandler.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2009 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 DAEMON_DNSHANDLER_H
33#define DAEMON_DNSHANDLER_H
34
35#include "config.h"
36#include <stdint.h>
37
39
40#include "status.h"
41#include "locks.h"
42#include "status.h"
43#include "wire/listener.h"
44#include "wire/netio.h"
45#include "wire/query.h"
46#include "wire/sock.h"
47
48#define ODS_SE_NOTIFY_CMD "NOTIFY"
49#define ODS_SE_MAX_HANDLERS 5
50
52 janitor_thread_t thread_id;
59 unsigned need_to_exit;
61};
62
71
78extern ods_status dnshandler_listen(dnshandler_type* dnshandler);
79
85extern void dnshandler_start(dnshandler_type* dnshandler);
86
92extern void dnshandler_signal(dnshandler_type* dnshandler);
93
101extern void dnshandler_fwd_notify(dnshandler_type* dnshandler,
102 uint8_t* pkt, size_t len);
103
109extern void dnshandler_cleanup(dnshandler_type* dnshandler);
110
111#endif /* DAEMON_DNSHANDLER_H */
void dnshandler_signal(dnshandler_type *dnshandler)
Definition: dnshandler.c:218
dnshandler_type * dnshandler_create(listener_type *interfaces)
Definition: dnshandler.c:51
ods_status dnshandler_listen(dnshandler_type *dnshandler)
Definition: dnshandler.c:106
void dnshandler_start(dnshandler_type *dnshandler)
Definition: dnshandler.c:125
void dnshandler_cleanup(dnshandler_type *dnshandler)
Definition: dnshandler.c:277
void dnshandler_fwd_notify(dnshandler_type *dnshandler, uint8_t *pkt, size_t len)
Definition: dnshandler.c:231
netio_handler_type xfrhandler
Definition: dnshandler.h:58
netio_handler_type * tcp_accept_handlers
Definition: dnshandler.h:60
janitor_thread_t thread_id
Definition: dnshandler.h:52
engine_type * engine
Definition: dnshandler.h:53
socklist_type * socklist
Definition: dnshandler.h:55
unsigned need_to_exit
Definition: dnshandler.h:59
listener_type * interfaces
Definition: dnshandler.h:54
netio_type * netio
Definition: dnshandler.h:56
query_type * query
Definition: dnshandler.h:57