31 |
|
return (outctx->rc == APR_SUCCESS) ? 1 : -1; |
32 |
|
} |
33 |
|
|
34 |
+ |
--- 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 |
+ |
--- 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; |