Author: rhuijben
Date: Wed Nov 18 13:08:12 2015
New Revision: 1714992
URL: http://svn.apache.org/viewvc?rev=1714992&view=rev
Log:
Following up on r1714990, move the connections reqevents variable in the io
baton.
* incoming.c
(read_from_client,
serf_incoming_create2,
serf_listener_create,
serf__incoming_update_pollset): Update usages.
* outgoing.c
(serf__conn_update_pollset,
remove_connection,
serf__process_connection,
serf_connection_create): Update usages.
* protocols/fcgi_protocol.c
(serf_fcgi_protocol_t): Remove pointer.
(serf_fcgi__enqueue_frame): Update usages.
(serf__fcgi_protocol_init,
serf__fcgi_protocol_init_server): Remove init.
* protocols/http2_protocol.c
(serf_http2_protocol_t): Remove pointer.
serf__http2_protocol_init,
serf__http2_protocol_init_server): Remove init.
(serf_http2__enqueue_frame): Update usage.
* serf_private.h
(serf_io_baton_t): Add variable here.
(serf_incoming_t,
serf_connection_t): Remove here.
Modified:
serf/trunk/incoming.c
serf/trunk/outgoing.c
serf/trunk/protocols/fcgi_protocol.c
serf/trunk/protocols/http2_protocol.c
serf/trunk/serf_private.h
Modified: serf/trunk/incoming.c
URL:
http://svn.apache.org/viewvc/serf/trunk/incoming.c?rev=1714992&r1=1714991&r2=1714992&view=diff
==============================================================================
--- serf/trunk/incoming.c (original)
+++ serf/trunk/incoming.c Wed Nov 18 13:08:12 2015
@@ -369,7 +369,7 @@ static apr_status_t read_from_client(ser
/* Remove us from the pollset */
tdesc.desc_type = APR_POLL_SOCKET;
tdesc.desc.s = client->skt;
- tdesc.reqevents = client->reqevents;
+ tdesc.reqevents = client->io.reqevents;
client->ctx->pollset_rm(client->ctx->pollset_baton,
&tdesc, &client->io);
@@ -730,6 +730,7 @@ apr_status_t serf_incoming_create2(
ic->io.u.client = ic;
ic->io.ctx = ctx;
ic->io.dirty_conn = false;
+ ic->io.reqevents = 0;
ic->req_setup = req_setup;
ic->req_setup_baton = req_setup_baton;
ic->skt = insock;
@@ -805,6 +806,7 @@ apr_status_t serf_listener_create(
l->io.u.listener = l;
l->io.ctx = ctx;
l->io.dirty_conn = false;
+ l->io.reqevents = 0;
l->accept_func = accept;
l->accept_baton = accept_baton;
@@ -903,7 +905,7 @@ apr_status_t serf__incoming_update_polls
/* Remove the socket from the poll set. */
desc.desc_type = APR_POLL_SOCKET;
desc.desc.s = client->skt;
- desc.reqevents = client->reqevents;
+ desc.reqevents = client->io.reqevents;
status = ctx->pollset_rm(ctx->pollset_baton,
&desc, &client->io);
@@ -965,7 +967,7 @@ apr_status_t serf__incoming_update_polls
}
/* save our reqevents, so we can pass it in to remove later. */
- client->reqevents = desc.reqevents;
+ client->io.reqevents = desc.reqevents;
/* Note: even if we don't want to read/write this socket, we still
* want to poll it for hangups and errors.
Modified: serf/trunk/outgoing.c
URL:
http://svn.apache.org/viewvc/serf/trunk/outgoing.c?rev=1714992&r1=1714991&r2=1714992&view=diff
==============================================================================
--- serf/trunk/outgoing.c (original)
+++ serf/trunk/outgoing.c Wed Nov 18 13:08:12 2015
@@ -158,7 +158,7 @@ apr_status_t serf__conn_update_pollset(s
/* Remove the socket from the poll set. */
desc.desc_type = APR_POLL_SOCKET;
desc.desc.s = conn->skt;
- desc.reqevents = conn->reqevents;
+ desc.reqevents = conn->io.reqevents;
status = ctx->pollset_rm(ctx->pollset_baton,
&desc, &conn->io);
@@ -253,7 +253,7 @@ apr_status_t serf__conn_update_pollset(s
}
/* save our reqevents, so we can pass it in to remove later. */
- conn->reqevents = desc.reqevents;
+ conn->io.reqevents = desc.reqevents;
/* Note: even if we don't want to read/write this socket, we still
* want to poll it for hangups and errors.
@@ -639,7 +639,7 @@ static apr_status_t remove_connection(se
desc.desc_type = APR_POLL_SOCKET;
desc.desc.s = conn->skt;
- desc.reqevents = conn->reqevents;
+ desc.reqevents = conn->io.reqevents;
return ctx->pollset_rm(ctx->pollset_baton,
&desc, &conn->io);
@@ -1504,7 +1504,7 @@ apr_status_t serf__process_connection(se
if (conn->status) {
tdesc.desc_type = APR_POLL_SOCKET;
tdesc.desc.s = conn->skt;
- tdesc.reqevents = conn->reqevents;
+ tdesc.reqevents = conn->io.reqevents;
ctx->pollset_rm(ctx->pollset_baton,
&tdesc, &conn->io);
return conn->status;
@@ -1524,7 +1524,7 @@ apr_status_t serf__process_connection(se
if (conn->skt) {
tdesc.desc_type = APR_POLL_SOCKET;
tdesc.desc.s = conn->skt;
- tdesc.reqevents = conn->reqevents;
+ tdesc.reqevents = conn->io.reqevents;
ctx->pollset_rm(ctx->pollset_baton,
&tdesc, &conn->io);
}
@@ -1561,6 +1561,7 @@ serf_connection_t *serf_connection_creat
conn->io.u.conn = conn;
conn->io.ctx = ctx;
conn->io.dirty_conn = false;
+ conn->io.reqevents = 0;
conn->hit_eof = 0;
conn->state = SERF_CONN_INIT;
conn->latency = -1; /* unknown */
Modified: serf/trunk/protocols/fcgi_protocol.c
URL:
http://svn.apache.org/viewvc/serf/trunk/protocols/fcgi_protocol.c?rev=1714992&r1=1714991&r2=1714992&view=diff
==============================================================================
--- serf/trunk/protocols/fcgi_protocol.c (original)
+++ serf/trunk/protocols/fcgi_protocol.c Wed Nov 18 13:08:12 2015
@@ -45,8 +45,6 @@ typedef struct serf_fcgi_protocol_t
serf_bucket_alloc_t *allocator;
serf_config_t *config;
- apr_int16_t *req_events;
-
serf_bucket_t *stream;
serf_bucket_t *ostream;
@@ -388,8 +386,8 @@ apr_status_t serf_fcgi__enqueue_frame(se
want_write = APR_STATUS_IS_EAGAIN(status);
- if ((want_write && !(*fcgi->req_events & APR_POLLOUT))
- || (!want_write && (*fcgi->req_events & APR_POLLOUT)))
+ if ((want_write && !(fcgi->io->reqevents & APR_POLLOUT))
+ || (!want_write && (fcgi->io->reqevents & APR_POLLOUT)))
{
serf_io__set_pollset_dirty(fcgi->io);
}
@@ -539,7 +537,6 @@ void serf__fcgi_protocol_init(serf_conne
fcgi->pool = protocol_pool;
fcgi->conn = conn;
fcgi->io = &conn->io;
- fcgi->req_events = &conn->reqevents;
fcgi->stream = conn->stream;
fcgi->ostream = conn->ostream_tail;
fcgi->allocator = conn->allocator;
@@ -609,7 +606,6 @@ void serf__fcgi_protocol_init_server(ser
fcgi->pool = protocol_pool;
fcgi->client = client;
fcgi->io = &client->io;
- fcgi->req_events = &client->reqevents;
fcgi->stream = client->stream;
fcgi->ostream = client->ostream_tail;
fcgi->allocator = client->allocator;
Modified: serf/trunk/protocols/http2_protocol.c
URL:
http://svn.apache.org/viewvc/serf/trunk/protocols/http2_protocol.c?rev=1714992&r1=1714991&r2=1714992&view=diff
==============================================================================
--- serf/trunk/protocols/http2_protocol.c (original)
+++ serf/trunk/protocols/http2_protocol.c Wed Nov 18 13:08:12 2015
@@ -123,7 +123,6 @@ struct serf_http2_protocol_t
serf_io_baton_t *io; /* Low level connection */
- apr_int16_t *req_events;
serf_bucket_t *stream, *ostream;
serf_bucket_alloc_t *allocator;
@@ -240,7 +239,6 @@ void serf__http2_protocol_init(serf_conn
h2->pool = protocol_pool;
h2->conn = conn;
h2->io = &conn->io;
- h2->req_events = &conn->reqevents;
h2->stream = conn->stream;
h2->ostream = conn->ostream_tail;
h2->allocator = conn->allocator;
@@ -333,7 +331,6 @@ void serf__http2_protocol_init_server(se
h2->pool = protocol_pool;
h2->client = client;
h2->io = &client->io;
- h2->req_events = &client->reqevents;
h2->stream = client->stream;
h2->ostream = client->ostream_tail;
h2->allocator = client->allocator;
@@ -475,8 +472,8 @@ serf_http2__enqueue_frame(serf_http2_pro
want_write = APR_STATUS_IS_EAGAIN(status);
- if ((want_write && !(*h2->req_events & APR_POLLOUT))
- || (!want_write && (*h2->req_events & APR_POLLOUT)))
+ if ((want_write && !(h2->io->reqevents & APR_POLLOUT))
+ || (!want_write && (h2->io->reqevents & APR_POLLOUT)))
{
serf_io__set_pollset_dirty(h2->io);
}
Modified: serf/trunk/serf_private.h
URL:
http://svn.apache.org/viewvc/serf/trunk/serf_private.h?rev=1714992&r1=1714991&r2=1714992&view=diff
==============================================================================
--- serf/trunk/serf_private.h (original)
+++ serf/trunk/serf_private.h Wed Nov 18 13:08:12 2015
@@ -142,6 +142,9 @@ typedef struct serf_io_baton_t {
serf_context_t *ctx;
bool dirty_conn;
+ /* the last reqevents we gave to pollset_add */
+ apr_int16_t reqevents;
+
} serf_io_baton_t;
/* Should we use static APR_INLINE instead? */
@@ -387,8 +390,6 @@ struct serf_incoming_t {
apr_pollfd_t desc;
- /* the last reqevents we gave to pollset_add */
- apr_int16_t reqevents;
apr_int16_t seen_in_pollset;
struct iovec vec[IOV_MAX];
@@ -453,9 +454,6 @@ struct serf_connection_t {
apr_socket_t *skt;
apr_pool_t *skt_pool;
- /* the last reqevents we gave to pollset_add */
- apr_int16_t reqevents;
-
/* the events we've seen for this connection in our returned pollset */
apr_int16_t seen_in_pollset;