OpenDNSSEC-signer  1.4.8.2
sock.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_SOCK_H
33 #define WIRE_SOCK_H
34 
35 #include "config.h"
36 #include "shared/allocator.h"
37 #include "shared/status.h"
38 #include "wire/listener.h"
39 #include "wire/netio.h"
40 #include "wire/query.h"
41 
46 typedef struct sock_struct sock_type;
47 struct sock_struct {
48  struct addrinfo* addr;
49  int s;
50 };
51 
60 };
61 
66 struct udp_data {
67  void* engine;
70 };
71 
77  void* engine;
81 };
82 
87 struct tcp_data {
89  void* engine;
95 };
96 
105 
113 void sock_handle_udp(netio_type* netio, netio_handler_type* handler,
114  netio_events_type event_types);
115 
124  netio_events_type event_types);
125 
134  netio_events_type event_types);
135 
144  netio_events_type event_types);
145 
146 #endif /* WIRE_SOCK_H */
int s
Definition: sock.h:49
void sock_handle_udp(netio_type *netio, netio_handler_type *handler, netio_events_type event_types)
Definition: sock.h:87
query_type * query
Definition: sock.h:69
#define MAX_INTERFACES
Definition: listener.h:53
enum ods_enum_status ods_status
Definition: status.h:90
enum netio_events_enum netio_events_type
Definition: netio.h:76
allocator_type * allocator
Definition: sock.h:88
sock_type udp[MAX_INTERFACES]
Definition: sock.h:59
sock_type tcp[MAX_INTERFACES]
Definition: sock.h:58
netio_handler_type * tcp_accept_handlers
Definition: sock.h:80
size_t tcp_accept_handler_count
Definition: sock.h:79
query_state qstate
Definition: sock.h:93
query_type * query
Definition: sock.h:90
enum query_enum query_state
Definition: query.h:52
void sock_handle_tcp_read(netio_type *netio, netio_handler_type *handler, netio_events_type event_types)
Definition: sock.c:556
sock_type * socket
Definition: sock.h:68
struct addrinfo * addr
Definition: sock.h:48
Definition: sock.h:66
sock_type * socket
Definition: sock.h:78
ods_status sock_listen(socklist_type *sockets, listener_type *listener)
Definition: sock.c:293
netio_handler_type * tcp_accept_handlers
Definition: sock.h:92
size_t tcp_accept_handler_count
Definition: sock.h:91
void * engine
Definition: sock.h:77
void sock_handle_tcp_accept(netio_type *netio, netio_handler_type *handler, netio_events_type event_types)
Definition: sock.c:451
void sock_handle_tcp_write(netio_type *netio, netio_handler_type *handler, netio_events_type event_types)
Definition: sock.c:682
void * engine
Definition: sock.h:89
size_t bytes_transmitted
Definition: sock.h:94
void * engine
Definition: sock.h:67