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; |