1 |
lat |
1.1 |
--- modules/ssl/ssl_engine_io.c.orig 2009-04-01 15:41:51.000000000 +0200
|
2 |
|
|
+++ modules/ssl/ssl_engine_io.c 2009-04-01 16:25:24.000000000 +0200
|
3 |
|
|
@@ -134,6 +134,9 @@ static int bio_filter_out_flush(BIO *bio
|
4 |
|
|
apr_bucket *e;
|
5 |
|
|
|
6 |
|
|
if (!(outctx->blen || outctx->length)) {
|
7 |
|
|
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
8 |
|
|
+ "%s: flush 1: success, blen=%lu, length=%lu",
|
9 |
|
|
+ SSL_LIBRARY_NAME, outctx->blen, outctx->length);
|
10 |
|
|
outctx->rc = APR_SUCCESS;
|
11 |
|
|
return 1;
|
12 |
|
|
}
|
13 |
|
|
@@ -152,12 +155,20 @@ static int bio_filter_out_flush(BIO *bio
|
14 |
|
|
e = apr_bucket_flush_create(outctx->bb->bucket_alloc);
|
15 |
|
|
APR_BRIGADE_INSERT_TAIL(outctx->bb, e);
|
16 |
|
|
|
17 |
|
|
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
18 |
|
|
+ "%s: flush 2: head=%pp, bucket=%pp, blen=%lu, length=%lu",
|
19 |
|
|
+ SSL_LIBRARY_NAME, outctx->bb, e, outctx->blen, outctx->length);
|
20 |
|
|
+
|
21 |
|
|
outctx->rc = ap_pass_brigade(outctx->filter_ctx->pOutputFilter->next,
|
22 |
|
|
outctx->bb);
|
23 |
|
|
/* Fail if the connection was reset: */
|
24 |
|
|
if (outctx->rc == APR_SUCCESS && outctx->c->aborted) {
|
25 |
|
|
outctx->rc = APR_ECONNRESET;
|
26 |
|
|
}
|
27 |
|
|
+
|
28 |
|
|
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
29 |
|
|
+ "%s: flush 3: rc=%d, APR_SUCCESS=%d, retval=%d",
|
30 |
|
|
+ SSL_LIBRARY_NAME, outctx->rc, APR_SUCCESS, (outctx->rc == APR_SUCCESS) ? 1 : -1);
|
31 |
|
|
return (outctx->rc == APR_SUCCESS) ? 1 : -1;
|
32 |
|
|
}
|
33 |
|
|
|
34 |
lat |
1.2 |
--- modules/ssl/ssl_engine_io.c.orig 2009-04-01 16:56:33.000000000 +0200
|
35 |
|
|
+++ modules/ssl/ssl_engine_io.c 2009-04-01 17:10:48.000000000 +0200
|
36 |
|
|
@@ -133,10 +133,11 @@ static int bio_filter_out_flush(BIO *bio
|
37 |
|
|
bio_filter_out_ctx_t *outctx = (bio_filter_out_ctx_t *)(bio->ptr);
|
38 |
|
|
apr_bucket *e;
|
39 |
|
|
|
40 |
|
|
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
41 |
|
|
+ "%s: flush 1: BIO#%pp, blen=%lu, length=%lu",
|
42 |
|
|
+ SSL_LIBRARY_NAME, bio, outctx->blen, outctx->length);
|
43 |
|
|
+
|
44 |
|
|
if (!(outctx->blen || outctx->length)) {
|
45 |
|
|
- ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
46 |
|
|
- "%s: flush 1: success, blen=%lu, length=%lu",
|
47 |
|
|
- SSL_LIBRARY_NAME, outctx->blen, outctx->length);
|
48 |
|
|
outctx->rc = APR_SUCCESS;
|
49 |
|
|
return 1;
|
50 |
|
|
}
|
51 |
|
|
@@ -156,8 +157,13 @@ static int bio_filter_out_flush(BIO *bio
|
52 |
|
|
APR_BRIGADE_INSERT_TAIL(outctx->bb, e);
|
53 |
|
|
|
54 |
|
|
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
55 |
|
|
- "%s: flush 2: head=%pp, bucket=%pp, blen=%lu, length=%lu",
|
56 |
|
|
- SSL_LIBRARY_NAME, outctx->bb, e, outctx->blen, outctx->length);
|
57 |
|
|
+ "%s: flush 2: BIO#%pp, head=%pp, bucket=%pp",
|
58 |
|
|
+ SSL_LIBRARY_NAME, bio, outctx->bb, e);
|
59 |
|
|
+ for (e = APR_BRIGADE_FIRST(outctx->bb); e != APR_BRIGADE_SENTINEL(outctx->bb); e = APR_BUCKET_NEXT(e)) {
|
60 |
|
|
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
61 |
|
|
+ "%s: flush 3: BIO#%pp, e=%pp [#%pp, %lu] -> %pp",
|
62 |
|
|
+ SSL_LIBRARY_NAME, bio, e, e->data, e->length, e->link);
|
63 |
|
|
+ }
|
64 |
|
|
|
65 |
|
|
outctx->rc = ap_pass_brigade(outctx->filter_ctx->pOutputFilter->next,
|
66 |
|
|
outctx->bb);
|
67 |
|
|
@@ -166,9 +172,14 @@ static int bio_filter_out_flush(BIO *bio
|
68 |
|
|
outctx->rc = APR_ECONNRESET;
|
69 |
|
|
}
|
70 |
|
|
|
71 |
|
|
+ for (e = APR_BRIGADE_FIRST(outctx->bb); e != APR_BRIGADE_SENTINEL(outctx->bb); e = APR_BUCKET_NEXT(e)) {
|
72 |
|
|
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
73 |
|
|
+ "%s: flush 4: BIO#%pp, e=%pp [#%pp, %lu] -> %pp",
|
74 |
|
|
+ SSL_LIBRARY_NAME, bio, e, e->data, e->length, e->link);
|
75 |
|
|
+ }
|
76 |
|
|
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
77 |
|
|
- "%s: flush 3: rc=%d, APR_SUCCESS=%d, retval=%d",
|
78 |
|
|
- SSL_LIBRARY_NAME, outctx->rc, APR_SUCCESS, (outctx->rc == APR_SUCCESS) ? 1 : -1);
|
79 |
|
|
+ "%s: flush 5: BIO#%pp, rc=%d, APR_SUCCESS=%d, retval=%d",
|
80 |
|
|
+ SSL_LIBRARY_NAME, bio, outctx->rc, APR_SUCCESS, (outctx->rc == APR_SUCCESS) ? 1 : -1);
|
81 |
|
|
return (outctx->rc == APR_SUCCESS) ? 1 : -1;
|
82 |
|
|
}
|
83 |
|
|
|
84 |
lat |
1.3 |
--- modules/ssl/ssl_engine_io.c.orig 2009-04-01 18:02:37.000000000 +0200
|
85 |
|
|
+++ modules/ssl/ssl_engine_io.c 2009-04-01 18:11:12.000000000 +0200
|
86 |
|
|
@@ -214,6 +214,9 @@ static int bio_filter_out_read(BIO *bio,
|
87 |
|
|
static int bio_filter_out_write(BIO *bio, const char *in, int inl)
|
88 |
|
|
{
|
89 |
|
|
bio_filter_out_ctx_t *outctx = (bio_filter_out_ctx_t *)(bio->ptr);
|
90 |
|
|
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
91 |
|
|
+ "%s: bio_filter_out_write(BIO#%pp, in#%pp, inl %d), retry=%d",
|
92 |
|
|
+ SSL_LIBRARY_NAME, bio, in, inl, BIO_get_retry_flags(bio));
|
93 |
|
|
|
94 |
|
|
/* when handshaking we'll have a small number of bytes.
|
95 |
|
|
* max size SSL will pass us here is about 16k.
|
96 |
|
|
@@ -230,6 +233,9 @@ static int bio_filter_out_write(BIO *bio
|
97 |
|
|
* but this way we avoid the malloc(APR_BUCKET_BUFF_SIZE)
|
98 |
|
|
* and free() of it later
|
99 |
|
|
*/
|
100 |
|
|
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
101 |
|
|
+ "%s: bio_filter_out_write(BIO#%pp)->buffer[%d, %d: %d]",
|
102 |
|
|
+ SSL_LIBRARY_NAME, bio, outctx->blen, outctx->length, inl);
|
103 |
|
|
memcpy(&outctx->buffer[outctx->blen], in, inl);
|
104 |
|
|
outctx->blen += inl;
|
105 |
|
|
}
|
106 |
|
|
@@ -243,6 +249,9 @@ static int bio_filter_out_write(BIO *bio
|
107 |
|
|
|
108 |
|
|
outctx->length += inl;
|
109 |
|
|
APR_BRIGADE_INSERT_TAIL(outctx->bb, bucket);
|
110 |
|
|
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
111 |
|
|
+ "%s: bio_filter_out_write(BIO#%pp)->bucket(%d, %d: #%pp)",
|
112 |
|
|
+ SSL_LIBRARY_NAME, bio, outctx->blen, outctx->length, bucket);
|
113 |
|
|
|
114 |
|
|
if (bio_filter_out_flush(bio) < 0) {
|
115 |
|
|
return -1;
|
116 |
lat |
1.4 |
--- modules/ssl/ssl_engine_io.c.orig 2009-04-01 18:23:20.000000000 +0200
|
117 |
|
|
+++ modules/ssl/ssl_engine_io.c 2009-04-01 18:38:41.000000000 +0200
|
118 |
|
|
@@ -215,8 +215,10 @@ static int bio_filter_out_write(BIO *bio
|
119 |
|
|
{
|
120 |
|
|
bio_filter_out_ctx_t *outctx = (bio_filter_out_ctx_t *)(bio->ptr);
|
121 |
|
|
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
122 |
|
|
- "%s: bio_filter_out_write(BIO#%pp, in#%pp, inl %d), retry=%d",
|
123 |
|
|
- SSL_LIBRARY_NAME, bio, in, inl, BIO_get_retry_flags(bio));
|
124 |
|
|
+ "%s: bio_filter_out_write(BIO#%pp, in#%pp, inl %d),"
|
125 |
|
|
+ " retry=%d, ctx: [length %d, blen %d, nobuffer=%d]",
|
126 |
|
|
+ SSL_LIBRARY_NAME, bio, in, inl, BIO_get_retry_flags(bio),
|
127 |
|
|
+ outctx->length, outctx->blen, outctx->filter_ctx->nobuffer);
|
128 |
|
|
|
129 |
|
|
/* when handshaking we'll have a small number of bytes.
|
130 |
|
|
* max size SSL will pass us here is about 16k.
|
131 |
|
|
@@ -267,6 +269,9 @@ static long bio_filter_out_ctrl(BIO *bio
|
132 |
|
|
char **pptr;
|
133 |
|
|
|
134 |
|
|
bio_filter_out_ctx_t *outctx = (bio_filter_out_ctx_t *)(bio->ptr);
|
135 |
|
|
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
136 |
|
|
+ "%s: bio_filter_out_ctrl(BIO#%pp, %d, %d, #%pp); ctx:[%d, %d]",
|
137 |
|
|
+ SSL_LIBRARY_NAME, bio, cmd, num, ptr, outctx->blen, outctx->length);
|
138 |
|
|
|
139 |
|
|
switch (cmd) {
|
140 |
|
|
case BIO_CTRL_RESET:
|
141 |
|
|
@@ -314,6 +319,9 @@ static long bio_filter_out_ctrl(BIO *bio
|
142 |
|
|
break;
|
143 |
|
|
}
|
144 |
|
|
|
145 |
|
|
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, outctx->c->base_server,
|
146 |
|
|
+ "%s: bio_filter_out_ctrl(BIO#%pp, %d, %d, #%pp); ctx:[%d, %d]->ret %d",
|
147 |
|
|
+ SSL_LIBRARY_NAME, bio, cmd, num, ptr, outctx->blen, outctx->length, ret);
|
148 |
|
|
return ret;
|
149 |
|
|
}
|
150 |
|
|
|
151 |
lat |
1.5 |
--- modules/ssl/ssl_engine_io.c.orig 2009-04-01 19:06:12.000000000 +0200
|
152 |
|
|
+++ modules/ssl/ssl_engine_io.c 2009-04-01 19:27:00.000000000 +0200
|
153 |
|
|
@@ -1728,6 +1728,7 @@ void ssl_io_filter_init(conn_rec *c, SSL
|
154 |
|
|
|
155 |
|
|
filter_ctx->pbioWrite = BIO_new(&bio_filter_out_method);
|
156 |
|
|
filter_ctx->pbioWrite->ptr = (void *)bio_filter_out_ctx_new(filter_ctx, c);
|
157 |
|
|
+ BIO_set_write_buf_size(filter_ctx->pbioWrite, 32*1024);
|
158 |
|
|
|
159 |
|
|
/* We insert a clogging input filter. Let the core know. */
|
160 |
|
|
c->clogging_input_filters = 1;
|