1
1
/* Copyright (c) 2008,2009 Ryan Dahl
2
2
*
3
- * evnet_queue comes from Nginx, ngx_queue.h
3
+ * evcom_queue comes from Nginx, ngx_queue.h
4
4
* Copyright (C) 2002-2009 Igor Sysoev
5
5
*
6
6
* Redistribution and use in source and binary forms, with or without
28
28
#include <ev.h>
29
29
#include <stddef.h> /* offsetof() */
30
30
31
- #ifndef evnet_h
32
- #define evnet_h
31
+ #ifndef evcom_h
32
+ #define evcom_h
33
33
34
34
#ifdef __cplusplus
35
35
extern "C" {
36
36
#endif
37
37
38
- #ifndef EVNET_HAVE_GNUTLS
39
- # define EVNET_HAVE_GNUTLS 0
38
+ #ifndef EVCOM_HAVE_GNUTLS
39
+ # define EVCOM_HAVE_GNUTLS 0
40
40
#endif
41
- #if EVNET_HAVE_GNUTLS
41
+ #if EVCOM_HAVE_GNUTLS
42
42
# include <gnutls/gnutls.h>
43
43
#endif
44
44
45
- typedef struct evnet_queue evnet_queue ;
46
- typedef struct evnet_buf evnet_buf ;
47
- typedef struct evnet_server evnet_server ;
48
- typedef struct evnet_socket evnet_socket ;
45
+ typedef struct evcom_queue evcom_queue ;
46
+ typedef struct evcom_buf evcom_buf ;
47
+ typedef struct evcom_server evcom_server ;
48
+ typedef struct evcom_socket evcom_socket ;
49
49
50
- void evnet_server_init (evnet_server * );
51
- int evnet_server_listen (evnet_server * , struct addrinfo * addrinfo , int backlog );
52
- void evnet_server_attach (EV_P_ evnet_server * );
53
- void evnet_server_detach (evnet_server * );
54
- void evnet_server_close (evnet_server * ); // synchronous
50
+ void evcom_server_init (evcom_server * );
51
+ int evcom_server_listen (evcom_server * , struct addrinfo * addrinfo , int backlog );
52
+ void evcom_server_attach (EV_P_ evcom_server * );
53
+ void evcom_server_detach (evcom_server * );
54
+ void evcom_server_close (evcom_server * ); // synchronous
55
55
56
- void evnet_socket_init (evnet_socket * , float timeout );
57
- int evnet_socket_connect (evnet_socket * , struct addrinfo * addrinfo );
58
- void evnet_socket_attach (EV_P_ evnet_socket * );
59
- void evnet_socket_detach (evnet_socket * );
60
- void evnet_socket_read_start (evnet_socket * );
61
- void evnet_socket_read_stop (evnet_socket * );
56
+ void evcom_socket_init (evcom_socket * , float timeout );
57
+ int evcom_socket_connect (evcom_socket * , struct addrinfo * addrinfo );
58
+ void evcom_socket_attach (EV_P_ evcom_socket * );
59
+ void evcom_socket_detach (evcom_socket * );
60
+ void evcom_socket_read_start (evcom_socket * );
61
+ void evcom_socket_read_stop (evcom_socket * );
62
62
63
63
/* Resets the timeout to stay alive for another socket->timeout seconds
64
64
*/
65
- void evnet_socket_reset_timeout ( evnet_socket * );
65
+ void evcom_socket_reset_timeout ( evcom_socket * );
66
66
67
67
/* Writes a buffer to the socket.
68
- * (Do not send a NULL evnet_buf or a buffer with evnet_buf ->base == NULL.)
68
+ * (Do not send a NULL evcom_buf or a buffer with evcom_buf ->base == NULL.)
69
69
*/
70
- void evnet_socket_write (evnet_socket * , evnet_buf * );
70
+ void evcom_socket_write (evcom_socket * , evcom_buf * );
71
71
72
- void evnet_socket_write_simple (evnet_socket * , const char * str , size_t len );
72
+ void evcom_socket_write_simple (evcom_socket * , const char * str , size_t len );
73
73
74
- /* Once the write buffer is drained, evnet_socket_close will shutdown the
74
+ /* Once the write buffer is drained, evcom_socket_close will shutdown the
75
75
* writing end of the socket and will close the read end once the server
76
76
* replies with an EOF.
77
77
*/
78
- void evnet_socket_close (evnet_socket * );
78
+ void evcom_socket_close (evcom_socket * );
79
79
80
80
/* Do not wait for the server to reply with EOF. This will only be called
81
81
* once the write buffer is drained.
82
82
* Warning: For TCP socket, the OS kernel may (should) reply with RST
83
83
* packets if this is called when data is still being received from the
84
84
* server.
85
85
*/
86
- void evnet_socket_full_close (evnet_socket * );
86
+ void evcom_socket_full_close (evcom_socket * );
87
87
88
88
/* The most extreme measure.
89
89
* Will not wait for the write queue to complete.
90
90
*/
91
- void evnet_socket_force_close ( evnet_socket * );
91
+ void evcom_socket_force_close ( evcom_socket * );
92
92
93
93
94
- #if EVNET_HAVE_GNUTLS
95
- /* Tells the socket to use transport layer security (SSL). evnet_socket does
94
+ #if EVCOM_HAVE_GNUTLS
95
+ /* Tells the socket to use transport layer security (SSL). evcom_socket does
96
96
* not want to make any decisions about security requirements, so the
97
97
* majoirty of GnuTLS configuration is left to the user. Only the transport
98
- * layer of GnuTLS is controlled by evnet_socket . That is, do not use
98
+ * layer of GnuTLS is controlled by evcom_socket . That is, do not use
99
99
* gnutls_transport_* functions. Do use the rest of GnuTLS's API.
100
100
*/
101
- void evnet_socket_set_secure_session ( evnet_socket * , gnutls_session_t );
101
+ void evcom_socket_set_secure_session ( evcom_socket * , gnutls_session_t );
102
102
#endif
103
103
104
- evnet_buf * evnet_buf_new (const char * base , size_t len );
105
- evnet_buf * evnet_buf_new2 (size_t len );
106
- void evnet_buf_destroy ( evnet_buf * );
104
+ evcom_buf * evcom_buf_new (const char * base , size_t len );
105
+ evcom_buf * evcom_buf_new2 (size_t len );
106
+ void evcom_buf_destroy ( evcom_buf * );
107
107
108
108
109
- struct evnet_queue {
110
- evnet_queue * prev ;
111
- evnet_queue * next ;
109
+ struct evcom_queue {
110
+ evcom_queue * prev ;
111
+ evcom_queue * next ;
112
112
};
113
113
114
- struct evnet_buf {
114
+ struct evcom_buf {
115
115
/* public */
116
116
char * base ;
117
117
size_t len ;
118
- void (* release ) (evnet_buf * ); /* called when oi is done with the object */
118
+ void (* release ) (evcom_buf * ); /* called when oi is done with the object */
119
119
void * data ;
120
120
121
121
/* private */
122
122
size_t written ;
123
- evnet_queue queue ;
123
+ evcom_queue queue ;
124
124
};
125
125
126
- struct evnet_server {
126
+ struct evcom_server {
127
127
/* read only */
128
128
int fd ;
129
129
#if EV_MULTIPLICITY
@@ -137,26 +137,26 @@ struct evnet_server {
137
137
138
138
/* PUBLIC */
139
139
140
- evnet_socket * (* on_connection ) (evnet_server * , struct sockaddr * remote_addr );
140
+ evcom_socket * (* on_connection ) (evcom_server * , struct sockaddr * remote_addr );
141
141
142
142
/* Executed when a server is closed.
143
- * If evnet_server_close () was called errorno will be 0.
143
+ * If evcom_server_close () was called errorno will be 0.
144
144
* An libev error is indicated with errorno == 1
145
145
* Otherwise errorno is a stdlib errno from a system call, e.g. accept()
146
146
*/
147
- void (* on_close ) (evnet_server * , int errorno );
147
+ void (* on_close ) (evcom_server * , int errorno );
148
148
149
149
void * data ;
150
150
};
151
151
152
- struct evnet_socket {
152
+ struct evcom_socket {
153
153
/* read only */
154
154
int fd ;
155
155
#if EV_MULTIPLICITY
156
156
struct ev_loop * loop ;
157
157
#endif
158
- evnet_server * server ;
159
- evnet_queue out_stream ;
158
+ evcom_server * server ;
159
+ evcom_queue out_stream ;
160
160
size_t written ;
161
161
unsigned attached :1 ;
162
162
unsigned connected :1 ;
@@ -165,42 +165,42 @@ struct evnet_socket {
165
165
unsigned got_half_close :1 ;
166
166
167
167
/* NULL = that end of the socket is closed. */
168
- int (* read_action ) (evnet_socket * );
169
- int (* write_action ) (evnet_socket * );
168
+ int (* read_action ) (evcom_socket * );
169
+ int (* write_action ) (evcom_socket * );
170
170
171
171
/* ERROR CODES. 0 = no error. Check on_close. */
172
172
int errorno ;
173
- #if EVNET_HAVE_GNUTLS
173
+ #if EVCOM_HAVE_GNUTLS
174
174
int gnutls_errorno ;
175
175
#endif
176
176
177
177
/* private */
178
178
ev_io write_watcher ;
179
179
ev_io read_watcher ;
180
180
ev_timer timeout_watcher ;
181
- #if EVNET_HAVE_GNUTLS
181
+ #if EVCOM_HAVE_GNUTLS
182
182
gnutls_session_t session ;
183
183
#endif
184
184
185
185
/* public */
186
186
size_t chunksize ; /* the maximum chunk that on_read() will return */
187
- void (* on_connect ) (evnet_socket * );
188
- void (* on_read ) (evnet_socket * , const void * buf , size_t count );
189
- void (* on_drain ) (evnet_socket * );
190
- void (* on_close ) (evnet_socket * );
191
- void (* on_timeout ) (evnet_socket * );
187
+ void (* on_connect ) (evcom_socket * );
188
+ void (* on_read ) (evcom_socket * , const void * buf , size_t count );
189
+ void (* on_drain ) (evcom_socket * );
190
+ void (* on_close ) (evcom_socket * );
191
+ void (* on_timeout ) (evcom_socket * );
192
192
void * data ;
193
193
};
194
194
195
195
EV_INLINE void
196
- evnet_queue_init ( evnet_queue * q )
196
+ evcom_queue_init ( evcom_queue * q )
197
197
{
198
198
q -> prev = q ;
199
199
q -> next = q ;
200
200
}
201
201
202
202
EV_INLINE void
203
- evnet_queue_insert_head ( evnet_queue * h , evnet_queue * x )
203
+ evcom_queue_insert_head ( evcom_queue * h , evcom_queue * x )
204
204
{
205
205
(x )-> next = (h )-> next ;
206
206
(x )-> next -> prev = x ;
@@ -209,7 +209,7 @@ evnet_queue_insert_head (evnet_queue *h, evnet_queue *x)
209
209
}
210
210
211
211
EV_INLINE void
212
- evnet_queue_remove ( evnet_queue * x )
212
+ evcom_queue_remove ( evcom_queue * x )
213
213
{
214
214
(x )-> next -> prev = (x )-> prev ;
215
215
(x )-> prev -> next = (x )-> next ;
@@ -219,14 +219,14 @@ evnet_queue_remove (evnet_queue *x)
219
219
#endif
220
220
}
221
221
222
- #define evnet_queue_empty (h ) (h == (h)->prev)
223
- #define evnet_queue_head (h ) (h)->next
224
- #define evnet_queue_last (h ) (h)->prev
225
- #define evnet_queue_data (q , type , link ) \
222
+ #define evcom_queue_empty (h ) (h == (h)->prev)
223
+ #define evcom_queue_head (h ) (h)->next
224
+ #define evcom_queue_last (h ) (h)->prev
225
+ #define evcom_queue_data (q , type , link ) \
226
226
(type *) ((unsigned char *) q - offsetof(type, link))
227
227
228
228
229
229
#ifdef __cplusplus
230
230
}
231
231
#endif
232
- #endif /* evnet_h */
232
+ #endif /* evcom_h */
0 commit comments