Also, core_create_conn() now initializes the conn_state within the newly
created connection.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/async-dev@280221
13f79535-47bb-0310-9956-
ffa450edef68
-*- coding: utf-8 -*-
+Changes in Apache 2.3.0 async-dev R&D branch
+
+ *) Added new connection states for handler and write completion
+ [Brian Pane]
+
Changes with Apache 2.3.0
[Remove entries to the current 2.0 and 2.2 section below, when backported]
typedef enum {
CONN_STATE_CHECK_REQUEST_LINE_READABLE,
CONN_STATE_READ_REQUEST_LINE,
+ CONN_STATE_HANDLER,
+ CONN_STATE_WRITE_COMPLETION,
CONN_STATE_LINGER,
} conn_state_e;
ap_update_child_status(c->sbh, SERVER_BUSY_WRITE, r);
if (r->status == HTTP_OK)
+ cs->state = CONN_STATE_HANDLER;
ap_process_request(r);
if (ap_extended_status)
else if (!c->data_in_input_filters) {
cs->state = CONN_STATE_CHECK_REQUEST_LINE_READABLE;
}
-
- /* else we are pipelining. Stay in READ_REQUEST_LINE state
- * and stay in the loop
- */
+ else {
+ /* else we are pipelining. Return to READ_REQUEST_LINE state
+ * and stay in the loop
+ */
+ cs->state = CONN_STATE_READ_REQUEST_LINE;
+ }
apr_pool_destroy(r->pool);
}
c->id = id;
c->bucket_alloc = alloc;
+
+ c->cs = (conn_state_t *)apr_pcalloc(ptrans, sizeof(conn_state_t));
+ APR_RING_INIT(&(c->cs->timeout_list), conn_state_t, timeout_list);
+ c->cs->expiration_time = 0;
+ c->cs->state = CONN_STATE_CHECK_REQUEST_LINE_READABLE;
+ c->cs->c = c;
+ c->cs->p = ptrans;
+ c->cs->bucket_alloc = alloc;
return c;
}