xfrhandler.h
Go to the documentation of this file.
/*
* Copyright (c) 2009 NLNet Labs. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef DAEMON_XFRHANDLER_H
#define DAEMON_XFRHANDLER_H
#include "config.h"
typedef struct xfrhandler_struct xfrhandler_type;
#include "status.h"
#include "locks.h"
#include "wire/buffer.h"
#include "wire/netio.h"
#include "wire/notify.h"
#include "wire/tcpset.h"
#include "wire/xfrd.h"
#include "engine.h"
struct xfrhandler_struct {
/* Engine reference */
janitor_thread_t thread_id;
engine_type* engine;
/* Start time */
time_t start_time;
time_t current_time;
/* Network support */
netio_type* netio;
tcp_set_type* tcp_set;
buffer_type* packet;
xfrd_type* tcp_waiting_first;
xfrd_type* udp_waiting_first;
xfrd_type* udp_waiting_last;
size_t udp_use_num;
notify_type* notify_waiting_first;
notify_type* notify_waiting_last;
int notify_udp_num;
netio_handler_type dnshandler;
unsigned got_time : 1;
unsigned need_to_exit : 1;
unsigned started : 1;
};
extern xfrhandler_type* xfrhandler_create(void);
extern void xfrhandler_start(xfrhandler_type* xfrhandler);
extern time_t xfrhandler_time(xfrhandler_type* xfrhandler);
extern void xfrhandler_signal(xfrhandler_type* xfrhandler);
extern void xfrhandler_cleanup(xfrhandler_type* xfrhandler);
#endif /* DAEMON_XFRHANDLER_H */
buffer.h
engine.h
netio.h
notify.h
buffer_struct
Definition buffer.h:112
engine_struct
Definition engine.h:51
netio_handler_struct
Definition netio.h:102
netio_struct
Definition netio.h:139
notify_struct
Definition notify.h:56
tcp_set_struct
Definition tcpset.h:67
xfrd_struct
Definition xfrd.h:94
xfrhandler_struct
Definition xfrhandler.h:52
xfrhandler_struct::packet
buffer_type * packet
Definition xfrhandler.h:62
xfrhandler_struct::got_time
unsigned got_time
Definition xfrhandler.h:71
xfrhandler_struct::netio
netio_type * netio
Definition xfrhandler.h:60
xfrhandler_struct::tcp_set
tcp_set_type * tcp_set
Definition xfrhandler.h:61
xfrhandler_struct::current_time
time_t current_time
Definition xfrhandler.h:58
xfrhandler_struct::started
unsigned started
Definition xfrhandler.h:73
xfrhandler_struct::thread_id
janitor_thread_t thread_id
Definition xfrhandler.h:54
xfrhandler_struct::engine
engine_type * engine
Definition xfrhandler.h:55
xfrhandler_struct::notify_udp_num
int notify_udp_num
Definition xfrhandler.h:69
xfrhandler_struct::need_to_exit
unsigned need_to_exit
Definition xfrhandler.h:72
xfrhandler_struct::udp_waiting_first
xfrd_type * udp_waiting_first
Definition xfrhandler.h:64
xfrhandler_struct::notify_waiting_last
notify_type * notify_waiting_last
Definition xfrhandler.h:68
xfrhandler_struct::notify_waiting_first
notify_type * notify_waiting_first
Definition xfrhandler.h:67
xfrhandler_struct::dnshandler
netio_handler_type dnshandler
Definition xfrhandler.h:70
xfrhandler_struct::udp_use_num
size_t udp_use_num
Definition xfrhandler.h:66
xfrhandler_struct::udp_waiting_last
xfrd_type * udp_waiting_last
Definition xfrhandler.h:65
xfrhandler_struct::start_time
time_t start_time
Definition xfrhandler.h:57
xfrhandler_struct::tcp_waiting_first
xfrd_type * tcp_waiting_first
Definition xfrhandler.h:63
tcpset.h
xfrd.h
xfrhandler_cleanup
void xfrhandler_cleanup(xfrhandler_type *xfrhandler)
Definition xfrhandler.c:198
xfrhandler_create
xfrhandler_type * xfrhandler_create(void)
Definition xfrhandler.c:52
xfrhandler_start
void xfrhandler_start(xfrhandler_type *xfrhandler)
Definition xfrhandler.c:110
xfrhandler_signal
void xfrhandler_signal(xfrhandler_type *xfrhandler)
Definition xfrhandler.c:159
xfrhandler_time
time_t xfrhandler_time(xfrhandler_type *xfrhandler)
Definition xfrhandler.c:141