Wow.. lots of good changes. I think the whole ssl-engine_io.c looks a lot cleaner now (and thanks for the info regarding how the SSL filter works). I'm still looking through the changes..
As regards splitting ssl_engine_io.c for input/output filter stuff, I'm +1 for it. -Madhu > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:jerenkrantz@;apache.org] > Sent: Friday, November 01, 2002 2:37 AM > To: [EMAIL PROTECTED] > Subject: cvs commit: httpd-2.0/modules/ssl ssl_engine_io.c > > > jerenkrantz 2002/11/01 02:37:06 > > Modified: modules/ssl ssl_engine_io.c > Log: > Add some waypoints to understanding this code > > Revision Changes Path > 1.90 +8 -0 httpd-2.0/modules/ssl/ssl_engine_io.c > > Index: ssl_engine_io.c > =================================================================== > RCS file: /home/cvs/httpd-2.0/modules/ssl/ssl_engine_io.c,v > retrieving revision 1.89 > retrieving revision 1.90 > diff -u -u -r1.89 -r1.90 > --- ssl_engine_io.c 1 Nov 2002 10:19:56 -0000 1.89 > +++ ssl_engine_io.c 1 Nov 2002 10:37:06 -0000 1.90 > @@ -378,6 +378,9 @@ > return inl; > } > > +/* This function will read from a brigade and discard the > read buckets as it > + * proceeds. It will read at most *len bytes. > + */ > static apr_status_t brigade_consume(apr_bucket_brigade *bb, > apr_read_type_e block, > char *c, apr_size_t *len) > @@ -694,6 +697,7 @@ > > *len = 0; > > + /* If we have something leftover from last time, try > that first. */ > if ((bytes = char_buffer_read(&inctx->cbuf, buf, wanted))) { > *len = bytes; > if (inctx->mode == AP_MODE_SPECULATIVE) { > @@ -724,6 +728,7 @@ > if (rc > 0) { > *len += rc; > if (inctx->mode == AP_MODE_SPECULATIVE) { > + /* We want to rollback this read. */ > char_buffer_write(&inctx->cbuf, buf, rc); > } > return inctx->rc; > @@ -735,6 +740,7 @@ > if (APR_STATUS_IS_EAGAIN(inctx->rc) > || APR_STATUS_IS_EINTR(inctx->rc)) { > if (inctx->block == APR_NONBLOCK_READ) { > + /* Already read something, return > APR_SUCCESS instead. */ > if (*len > 0) { > inctx->rc = APR_SUCCESS; > } > @@ -761,6 +767,7 @@ > inctx->rc = APR_EAGAIN; > > if (inctx->block == APR_NONBLOCK_READ) { > + /* Already read something, return > APR_SUCCESS instead. */ > if (*len > 0) { > inctx->rc = APR_SUCCESS; > } > @@ -962,6 +969,7 @@ > return ssl_io_filter_error(f, bb, status); > } > > + /* Create a transient bucket out of the decrypted data. */ > if (len > 0) { > apr_bucket *bucket = > apr_bucket_transient_create(inctx->buffer, > len, f->c->bucket_alloc); > > > >