libevent-2.1.12-stable
Toggle main menu visibility
Loading...
Searching...
No Matches
listener.h
1
/*
2
* Copyright (c) 2000-2007 Niels Provos <provos@citi.umich.edu>
3
* Copyright (c) 2007-2012 Niels Provos and Nick Mathewson
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
* 3. The name of the author may not be used to endorse or promote products
14
* derived from this software without specific prior written permission.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
*/
27
#ifndef EVENT2_LISTENER_H_INCLUDED_
28
#define EVENT2_LISTENER_H_INCLUDED_
29
30
#include <event2/visibility.h>
31
32
#ifdef __cplusplus
33
extern
"C"
{
34
#endif
35
36
#include <
event2/event.h
>
37
38
struct
sockaddr;
39
struct
evconnlistener;
40
50
typedef
void (*evconnlistener_cb)(
struct
evconnlistener *,
evutil_socket_t
,
struct
sockaddr *,
int
socklen,
void
*);
51
58
typedef
void (*evconnlistener_errorcb)(
struct
evconnlistener *,
void
*);
59
62
#define LEV_OPT_LEAVE_SOCKETS_BLOCKING (1u<<0)
65
#define LEV_OPT_CLOSE_ON_FREE (1u<<1)
67
#define LEV_OPT_CLOSE_ON_EXEC (1u<<2)
70
#define LEV_OPT_REUSEABLE (1u<<3)
73
#define LEV_OPT_THREADSAFE (1u<<4)
76
#define LEV_OPT_DISABLED (1u<<5)
90
#define LEV_OPT_DEFERRED_ACCEPT (1u<<6)
99
#define LEV_OPT_REUSEABLE_PORT (1u<<7)
111
#define LEV_OPT_BIND_IPV6ONLY (1u<<8)
112
130
EVENT2_EXPORT_SYMBOL
131
struct
evconnlistener *evconnlistener_new(
struct
event_base
*base,
132
evconnlistener_cb cb,
void
*ptr,
unsigned
flags,
int
backlog,
133
evutil_socket_t
fd);
149
EVENT2_EXPORT_SYMBOL
150
struct
evconnlistener *evconnlistener_new_bind(
struct
event_base
*base,
151
evconnlistener_cb cb,
void
*ptr,
unsigned
flags,
int
backlog,
152
const
struct
sockaddr *sa,
int
socklen);
156
EVENT2_EXPORT_SYMBOL
157
void
evconnlistener_free(
struct
evconnlistener *lev);
161
EVENT2_EXPORT_SYMBOL
162
int
evconnlistener_enable(
struct
evconnlistener *lev);
166
EVENT2_EXPORT_SYMBOL
167
int
evconnlistener_disable(
struct
evconnlistener *lev);
168
170
EVENT2_EXPORT_SYMBOL
171
struct
event_base
*evconnlistener_get_base(
struct
evconnlistener *lev);
172
174
EVENT2_EXPORT_SYMBOL
175
evutil_socket_t
evconnlistener_get_fd(
struct
evconnlistener *lev);
176
179
EVENT2_EXPORT_SYMBOL
180
void
evconnlistener_set_cb(
struct
evconnlistener *lev,
181
evconnlistener_cb cb,
void
*arg);
182
184
EVENT2_EXPORT_SYMBOL
185
void
evconnlistener_set_error_cb(
struct
evconnlistener *lev,
186
evconnlistener_errorcb errorcb);
187
188
#ifdef __cplusplus
189
}
190
#endif
191
192
#endif
event.h
Core functions for waiting for and receiving events, and using event bases.
event_base
Structure to hold information and state for a Libevent dispatch loop.
Definition
event.h:219
evutil_socket_t
#define evutil_socket_t
A type wide enough to hold the output of "socket()" or "accept()".
Definition
util.h:310
event2
listener.h
Generated by
1.17.0