overmind 0.1.0-x86-freebsd
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/bin/overmind +13 -0
- data/lib/overmind/cli.rb +93 -0
- data/lib/overmind/version.rb +5 -0
- data/lib/overmind.rb +3 -0
- data/libexec/overmind +0 -0
- data/libexec/prebuilt-tmux/bin/event_rpcgen.py +1925 -0
- data/libexec/prebuilt-tmux/bin/tmux +0 -0
- data/libexec/prebuilt-tmux/include/evdns.h +45 -0
- data/libexec/prebuilt-tmux/include/event.h +83 -0
- data/libexec/prebuilt-tmux/include/event2/buffer.h +1077 -0
- data/libexec/prebuilt-tmux/include/event2/buffer_compat.h +116 -0
- data/libexec/prebuilt-tmux/include/event2/bufferevent.h +1024 -0
- data/libexec/prebuilt-tmux/include/event2/bufferevent_compat.h +104 -0
- data/libexec/prebuilt-tmux/include/event2/bufferevent_ssl.h +134 -0
- data/libexec/prebuilt-tmux/include/event2/bufferevent_struct.h +116 -0
- data/libexec/prebuilt-tmux/include/event2/dns.h +751 -0
- data/libexec/prebuilt-tmux/include/event2/dns_compat.h +358 -0
- data/libexec/prebuilt-tmux/include/event2/dns_struct.h +80 -0
- data/libexec/prebuilt-tmux/include/event2/event-config.h +570 -0
- data/libexec/prebuilt-tmux/include/event2/event.h +1672 -0
- data/libexec/prebuilt-tmux/include/event2/event_compat.h +230 -0
- data/libexec/prebuilt-tmux/include/event2/event_struct.h +180 -0
- data/libexec/prebuilt-tmux/include/event2/http.h +1192 -0
- data/libexec/prebuilt-tmux/include/event2/http_compat.h +94 -0
- data/libexec/prebuilt-tmux/include/event2/http_struct.h +152 -0
- data/libexec/prebuilt-tmux/include/event2/keyvalq_struct.h +80 -0
- data/libexec/prebuilt-tmux/include/event2/listener.h +192 -0
- data/libexec/prebuilt-tmux/include/event2/rpc.h +626 -0
- data/libexec/prebuilt-tmux/include/event2/rpc_compat.h +61 -0
- data/libexec/prebuilt-tmux/include/event2/rpc_struct.h +114 -0
- data/libexec/prebuilt-tmux/include/event2/tag.h +146 -0
- data/libexec/prebuilt-tmux/include/event2/tag_compat.h +49 -0
- data/libexec/prebuilt-tmux/include/event2/thread.h +253 -0
- data/libexec/prebuilt-tmux/include/event2/util.h +888 -0
- data/libexec/prebuilt-tmux/include/event2/visibility.h +67 -0
- data/libexec/prebuilt-tmux/include/evhttp.h +45 -0
- data/libexec/prebuilt-tmux/include/evrpc.h +45 -0
- data/libexec/prebuilt-tmux/include/evutil.h +39 -0
- data/libexec/prebuilt-tmux/include/utf8proc.h +743 -0
- data/libexec/prebuilt-tmux/lib/libevent-2.1.7.dylib +0 -0
- data/libexec/prebuilt-tmux/lib/libevent.a +0 -0
- data/libexec/prebuilt-tmux/lib/libevent.dylib +1 -0
- data/libexec/prebuilt-tmux/lib/libevent.la +41 -0
- data/libexec/prebuilt-tmux/lib/libevent_core-2.1.7.dylib +0 -0
- data/libexec/prebuilt-tmux/lib/libevent_core.a +0 -0
- data/libexec/prebuilt-tmux/lib/libevent_core.dylib +1 -0
- data/libexec/prebuilt-tmux/lib/libevent_core.la +41 -0
- data/libexec/prebuilt-tmux/lib/libevent_extra-2.1.7.dylib +0 -0
- data/libexec/prebuilt-tmux/lib/libevent_extra.a +0 -0
- data/libexec/prebuilt-tmux/lib/libevent_extra.dylib +1 -0
- data/libexec/prebuilt-tmux/lib/libevent_extra.la +41 -0
- data/libexec/prebuilt-tmux/lib/libevent_openssl-2.1.7.dylib +0 -0
- data/libexec/prebuilt-tmux/lib/libevent_openssl.a +0 -0
- data/libexec/prebuilt-tmux/lib/libevent_openssl.dylib +1 -0
- data/libexec/prebuilt-tmux/lib/libevent_openssl.la +41 -0
- data/libexec/prebuilt-tmux/lib/libevent_pthreads-2.1.7.dylib +0 -0
- data/libexec/prebuilt-tmux/lib/libevent_pthreads.a +0 -0
- data/libexec/prebuilt-tmux/lib/libevent_pthreads.dylib +1 -0
- data/libexec/prebuilt-tmux/lib/libevent_pthreads.la +41 -0
- data/libexec/prebuilt-tmux/lib/libutf8proc.3.dylib +0 -0
- data/libexec/prebuilt-tmux/lib/libutf8proc.a +0 -0
- data/libexec/prebuilt-tmux/lib/libutf8proc.dylib +1 -0
- data/libexec/prebuilt-tmux/lib/pkgconfig/libevent.pc +16 -0
- data/libexec/prebuilt-tmux/lib/pkgconfig/libevent_core.pc +16 -0
- data/libexec/prebuilt-tmux/lib/pkgconfig/libevent_extra.pc +16 -0
- data/libexec/prebuilt-tmux/lib/pkgconfig/libevent_openssl.pc +16 -0
- data/libexec/prebuilt-tmux/lib/pkgconfig/libevent_pthreads.pc +16 -0
- data/libexec/prebuilt-tmux/lib/pkgconfig/libutf8proc.pc +10 -0
- data/libexec/prebuilt-tmux/share/man/man1/tmux.1 +7242 -0
- data/overmind.gemspec +29 -0
- metadata +160 -0
@@ -0,0 +1,104 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (c) 2007-2012 Niels Provos, Nick Mathewson
|
3
|
+
* Copyright (c) 2000-2007 Niels Provos <provos@citi.umich.edu>
|
4
|
+
* All rights reserved.
|
5
|
+
*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions
|
8
|
+
* are met:
|
9
|
+
* 1. Redistributions of source code must retain the above copyright
|
10
|
+
* notice, this list of conditions and the following disclaimer.
|
11
|
+
* 2. Redistributions in binary form must reproduce the above copyright
|
12
|
+
* notice, this list of conditions and the following disclaimer in the
|
13
|
+
* documentation and/or other materials provided with the distribution.
|
14
|
+
* 3. The name of the author may not be used to endorse or promote products
|
15
|
+
* derived from this software without specific prior written permission.
|
16
|
+
*
|
17
|
+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
18
|
+
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
19
|
+
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
20
|
+
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
21
|
+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
22
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
23
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
24
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
25
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
26
|
+
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
27
|
+
*/
|
28
|
+
#ifndef EVENT2_BUFFEREVENT_COMPAT_H_INCLUDED_
|
29
|
+
#define EVENT2_BUFFEREVENT_COMPAT_H_INCLUDED_
|
30
|
+
|
31
|
+
#include <event2/visibility.h>
|
32
|
+
|
33
|
+
#define evbuffercb bufferevent_data_cb
|
34
|
+
#define everrorcb bufferevent_event_cb
|
35
|
+
|
36
|
+
/**
|
37
|
+
Create a new bufferevent for an fd.
|
38
|
+
|
39
|
+
This function is deprecated. Use bufferevent_socket_new and
|
40
|
+
bufferevent_set_callbacks instead.
|
41
|
+
|
42
|
+
Libevent provides an abstraction on top of the regular event callbacks.
|
43
|
+
This abstraction is called a buffered event. A buffered event provides
|
44
|
+
input and output buffers that get filled and drained automatically. The
|
45
|
+
user of a buffered event no longer deals directly with the I/O, but
|
46
|
+
instead is reading from input and writing to output buffers.
|
47
|
+
|
48
|
+
Once initialized, the bufferevent structure can be used repeatedly with
|
49
|
+
bufferevent_enable() and bufferevent_disable().
|
50
|
+
|
51
|
+
When read enabled the bufferevent will try to read from the file descriptor
|
52
|
+
and call the read callback. The write callback is executed whenever the
|
53
|
+
output buffer is drained below the write low watermark, which is 0 by
|
54
|
+
default.
|
55
|
+
|
56
|
+
If multiple bases are in use, bufferevent_base_set() must be called before
|
57
|
+
enabling the bufferevent for the first time.
|
58
|
+
|
59
|
+
@deprecated This function is deprecated because it uses the current
|
60
|
+
event base, and as such can be error prone for multithreaded programs.
|
61
|
+
Use bufferevent_socket_new() instead.
|
62
|
+
|
63
|
+
@param fd the file descriptor from which data is read and written to.
|
64
|
+
This file descriptor is not allowed to be a pipe(2).
|
65
|
+
@param readcb callback to invoke when there is data to be read, or NULL if
|
66
|
+
no callback is desired
|
67
|
+
@param writecb callback to invoke when the file descriptor is ready for
|
68
|
+
writing, or NULL if no callback is desired
|
69
|
+
@param errorcb callback to invoke when there is an error on the file
|
70
|
+
descriptor
|
71
|
+
@param cbarg an argument that will be supplied to each of the callbacks
|
72
|
+
(readcb, writecb, and errorcb)
|
73
|
+
@return a pointer to a newly allocated bufferevent struct, or NULL if an
|
74
|
+
error occurred
|
75
|
+
@see bufferevent_base_set(), bufferevent_free()
|
76
|
+
*/
|
77
|
+
EVENT2_EXPORT_SYMBOL
|
78
|
+
struct bufferevent *bufferevent_new(evutil_socket_t fd,
|
79
|
+
evbuffercb readcb, evbuffercb writecb, everrorcb errorcb, void *cbarg);
|
80
|
+
|
81
|
+
|
82
|
+
/**
|
83
|
+
Set the read and write timeout for a buffered event.
|
84
|
+
|
85
|
+
@param bufev the bufferevent to be modified
|
86
|
+
@param timeout_read the read timeout
|
87
|
+
@param timeout_write the write timeout
|
88
|
+
*/
|
89
|
+
EVENT2_EXPORT_SYMBOL
|
90
|
+
void bufferevent_settimeout(struct bufferevent *bufev,
|
91
|
+
int timeout_read, int timeout_write);
|
92
|
+
|
93
|
+
#define EVBUFFER_READ BEV_EVENT_READING
|
94
|
+
#define EVBUFFER_WRITE BEV_EVENT_WRITING
|
95
|
+
#define EVBUFFER_EOF BEV_EVENT_EOF
|
96
|
+
#define EVBUFFER_ERROR BEV_EVENT_ERROR
|
97
|
+
#define EVBUFFER_TIMEOUT BEV_EVENT_TIMEOUT
|
98
|
+
|
99
|
+
/** macro for getting access to the input buffer of a bufferevent */
|
100
|
+
#define EVBUFFER_INPUT(x) bufferevent_get_input(x)
|
101
|
+
/** macro for getting access to the output buffer of a bufferevent */
|
102
|
+
#define EVBUFFER_OUTPUT(x) bufferevent_get_output(x)
|
103
|
+
|
104
|
+
#endif
|
@@ -0,0 +1,134 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (c) 2009-2012 Niels Provos and Nick Mathewson
|
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
|
+
* 3. The name of the author may not be used to endorse or promote products
|
13
|
+
* derived from this software without specific prior written permission.
|
14
|
+
*
|
15
|
+
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
16
|
+
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
17
|
+
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
18
|
+
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
19
|
+
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
20
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
21
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
22
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
23
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
24
|
+
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
25
|
+
*/
|
26
|
+
#ifndef EVENT2_BUFFEREVENT_SSL_H_INCLUDED_
|
27
|
+
#define EVENT2_BUFFEREVENT_SSL_H_INCLUDED_
|
28
|
+
|
29
|
+
/** @file event2/bufferevent_ssl.h
|
30
|
+
|
31
|
+
OpenSSL support for bufferevents.
|
32
|
+
*/
|
33
|
+
#include <event2/visibility.h>
|
34
|
+
#include <event2/event-config.h>
|
35
|
+
#include <event2/bufferevent.h>
|
36
|
+
#include <event2/util.h>
|
37
|
+
|
38
|
+
#ifdef __cplusplus
|
39
|
+
extern "C" {
|
40
|
+
#endif
|
41
|
+
|
42
|
+
/* This is what openssl's SSL objects are underneath. */
|
43
|
+
struct ssl_st;
|
44
|
+
|
45
|
+
/**
|
46
|
+
The state of an SSL object to be used when creating a new
|
47
|
+
SSL bufferevent.
|
48
|
+
*/
|
49
|
+
enum bufferevent_ssl_state {
|
50
|
+
BUFFEREVENT_SSL_OPEN = 0,
|
51
|
+
BUFFEREVENT_SSL_CONNECTING = 1,
|
52
|
+
BUFFEREVENT_SSL_ACCEPTING = 2
|
53
|
+
};
|
54
|
+
|
55
|
+
#if defined(EVENT__HAVE_OPENSSL) || defined(EVENT_IN_DOXYGEN_)
|
56
|
+
/**
|
57
|
+
Create a new SSL bufferevent to send its data over another bufferevent.
|
58
|
+
|
59
|
+
@param base An event_base to use to detect reading and writing. It
|
60
|
+
must also be the base for the underlying bufferevent.
|
61
|
+
@param underlying A socket to use for this SSL
|
62
|
+
@param ssl A SSL* object from openssl.
|
63
|
+
@param state The current state of the SSL connection
|
64
|
+
@param options One or more bufferevent_options
|
65
|
+
@return A new bufferevent on success, or NULL on failure
|
66
|
+
*/
|
67
|
+
EVENT2_EXPORT_SYMBOL
|
68
|
+
struct bufferevent *
|
69
|
+
bufferevent_openssl_filter_new(struct event_base *base,
|
70
|
+
struct bufferevent *underlying,
|
71
|
+
struct ssl_st *ssl,
|
72
|
+
enum bufferevent_ssl_state state,
|
73
|
+
int options);
|
74
|
+
|
75
|
+
/**
|
76
|
+
Create a new SSL bufferevent to send its data over an SSL * on a socket.
|
77
|
+
|
78
|
+
@param base An event_base to use to detect reading and writing
|
79
|
+
@param fd A socket to use for this SSL
|
80
|
+
@param ssl A SSL* object from openssl.
|
81
|
+
@param state The current state of the SSL connection
|
82
|
+
@param options One or more bufferevent_options
|
83
|
+
@return A new bufferevent on success, or NULL on failure.
|
84
|
+
*/
|
85
|
+
EVENT2_EXPORT_SYMBOL
|
86
|
+
struct bufferevent *
|
87
|
+
bufferevent_openssl_socket_new(struct event_base *base,
|
88
|
+
evutil_socket_t fd,
|
89
|
+
struct ssl_st *ssl,
|
90
|
+
enum bufferevent_ssl_state state,
|
91
|
+
int options);
|
92
|
+
|
93
|
+
/** Control how to report dirty SSL shutdowns.
|
94
|
+
|
95
|
+
If the peer (or the network, or an attacker) closes the TCP
|
96
|
+
connection before closing the SSL channel, and the protocol is SSL >= v3,
|
97
|
+
this is a "dirty" shutdown. If allow_dirty_shutdown is 0 (default),
|
98
|
+
this is reported as BEV_EVENT_ERROR.
|
99
|
+
|
100
|
+
If instead allow_dirty_shutdown=1, a dirty shutdown is reported as
|
101
|
+
BEV_EVENT_EOF.
|
102
|
+
|
103
|
+
(Note that if the protocol is < SSLv3, you will always receive
|
104
|
+
BEV_EVENT_EOF, since SSL 2 and earlier cannot distinguish a secure
|
105
|
+
connection close from a dirty one. This is one reason (among many)
|
106
|
+
not to use SSL 2.)
|
107
|
+
*/
|
108
|
+
|
109
|
+
EVENT2_EXPORT_SYMBOL
|
110
|
+
int bufferevent_openssl_get_allow_dirty_shutdown(struct bufferevent *bev);
|
111
|
+
EVENT2_EXPORT_SYMBOL
|
112
|
+
void bufferevent_openssl_set_allow_dirty_shutdown(struct bufferevent *bev,
|
113
|
+
int allow_dirty_shutdown);
|
114
|
+
|
115
|
+
/** Return the underlying openssl SSL * object for an SSL bufferevent. */
|
116
|
+
EVENT2_EXPORT_SYMBOL
|
117
|
+
struct ssl_st *
|
118
|
+
bufferevent_openssl_get_ssl(struct bufferevent *bufev);
|
119
|
+
|
120
|
+
/** Tells a bufferevent to begin SSL renegotiation. */
|
121
|
+
EVENT2_EXPORT_SYMBOL
|
122
|
+
int bufferevent_ssl_renegotiate(struct bufferevent *bev);
|
123
|
+
|
124
|
+
/** Return the most recent OpenSSL error reported on an SSL bufferevent. */
|
125
|
+
EVENT2_EXPORT_SYMBOL
|
126
|
+
unsigned long bufferevent_get_openssl_error(struct bufferevent *bev);
|
127
|
+
|
128
|
+
#endif
|
129
|
+
|
130
|
+
#ifdef __cplusplus
|
131
|
+
}
|
132
|
+
#endif
|
133
|
+
|
134
|
+
#endif /* EVENT2_BUFFEREVENT_SSL_H_INCLUDED_ */
|
@@ -0,0 +1,116 @@
|
|
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_BUFFEREVENT_STRUCT_H_INCLUDED_
|
28
|
+
#define EVENT2_BUFFEREVENT_STRUCT_H_INCLUDED_
|
29
|
+
|
30
|
+
/** @file event2/bufferevent_struct.h
|
31
|
+
|
32
|
+
Data structures for bufferevents. Using these structures may hurt forward
|
33
|
+
compatibility with later versions of Libevent: be careful!
|
34
|
+
|
35
|
+
@deprecated Use of bufferevent_struct.h is completely deprecated; these
|
36
|
+
structures are only exposed for backward compatibility with programs
|
37
|
+
written before Libevent 2.0 that used them.
|
38
|
+
*/
|
39
|
+
|
40
|
+
#ifdef __cplusplus
|
41
|
+
extern "C" {
|
42
|
+
#endif
|
43
|
+
|
44
|
+
#include <event2/event-config.h>
|
45
|
+
#ifdef EVENT__HAVE_SYS_TYPES_H
|
46
|
+
#include <sys/types.h>
|
47
|
+
#endif
|
48
|
+
#ifdef EVENT__HAVE_SYS_TIME_H
|
49
|
+
#include <sys/time.h>
|
50
|
+
#endif
|
51
|
+
|
52
|
+
/* For int types. */
|
53
|
+
#include <event2/util.h>
|
54
|
+
/* For struct event */
|
55
|
+
#include <event2/event_struct.h>
|
56
|
+
|
57
|
+
struct event_watermark {
|
58
|
+
size_t low;
|
59
|
+
size_t high;
|
60
|
+
};
|
61
|
+
|
62
|
+
/**
|
63
|
+
Shared implementation of a bufferevent.
|
64
|
+
|
65
|
+
This type is exposed only because it was exposed in previous versions,
|
66
|
+
and some people's code may rely on manipulating it. Otherwise, you
|
67
|
+
should really not rely on the layout, size, or contents of this structure:
|
68
|
+
it is fairly volatile, and WILL change in future versions of the code.
|
69
|
+
**/
|
70
|
+
struct bufferevent {
|
71
|
+
/** Event base for which this bufferevent was created. */
|
72
|
+
struct event_base *ev_base;
|
73
|
+
/** Pointer to a table of function pointers to set up how this
|
74
|
+
bufferevent behaves. */
|
75
|
+
const struct bufferevent_ops *be_ops;
|
76
|
+
|
77
|
+
/** A read event that triggers when a timeout has happened or a socket
|
78
|
+
is ready to read data. Only used by some subtypes of
|
79
|
+
bufferevent. */
|
80
|
+
struct event ev_read;
|
81
|
+
/** A write event that triggers when a timeout has happened or a socket
|
82
|
+
is ready to write data. Only used by some subtypes of
|
83
|
+
bufferevent. */
|
84
|
+
struct event ev_write;
|
85
|
+
|
86
|
+
/** An input buffer. Only the bufferevent is allowed to add data to
|
87
|
+
this buffer, though the user is allowed to drain it. */
|
88
|
+
struct evbuffer *input;
|
89
|
+
|
90
|
+
/** An input buffer. Only the bufferevent is allowed to drain data
|
91
|
+
from this buffer, though the user is allowed to add it. */
|
92
|
+
struct evbuffer *output;
|
93
|
+
|
94
|
+
struct event_watermark wm_read;
|
95
|
+
struct event_watermark wm_write;
|
96
|
+
|
97
|
+
bufferevent_data_cb readcb;
|
98
|
+
bufferevent_data_cb writecb;
|
99
|
+
/* This should be called 'eventcb', but renaming it would break
|
100
|
+
* backward compatibility */
|
101
|
+
bufferevent_event_cb errorcb;
|
102
|
+
void *cbarg;
|
103
|
+
|
104
|
+
struct timeval timeout_read;
|
105
|
+
struct timeval timeout_write;
|
106
|
+
|
107
|
+
/** Events that are currently enabled: currently EV_READ and EV_WRITE
|
108
|
+
are supported. */
|
109
|
+
short enabled;
|
110
|
+
};
|
111
|
+
|
112
|
+
#ifdef __cplusplus
|
113
|
+
}
|
114
|
+
#endif
|
115
|
+
|
116
|
+
#endif /* EVENT2_BUFFEREVENT_STRUCT_H_INCLUDED_ */
|