char *c, apr_size_t *len)
{
apr_size_t actual = 0;
- apr_status_t status;
+ apr_status_t status = APR_SUCCESS;
while (!APR_BRIGADE_EMPTY(bb)) {
apr_bucket *b = APR_BRIGADE_FIRST(bb);
c += consume;
actual += consume;
- }
- if (b->start >= 0) {
if (consume >= b->length) {
/* This physical bucket was consumed */
apr_bucket_delete(b);
b->length -= consume;
}
}
+ else if (b->length == 0) {
+ apr_bucket_delete(b);
+ }
/* This could probably be actual == *len, but be safe from stray
* photons. */
type = "abortive";
}
else switch (sslconn->shutdown_type) {
- case SSL_SHUTDOWN_TYPE_UNSET:
- case SSL_SHUTDOWN_TYPE_STANDARD:
- /* send close notify, but don't wait for clients close notify
- (standard compliant and safe, so it's the DEFAULT!) */
- shutdown_type = SSL_RECEIVED_SHUTDOWN;
- type = "standard";
- break;
case SSL_SHUTDOWN_TYPE_UNCLEAN:
/* perform no close notify handshake at all
(violates the SSL/TLS standard!) */
shutdown_type = 0;
type = "accurate";
break;
+ default:
+ /*
+ * case SSL_SHUTDOWN_TYPE_UNSET:
+ * case SSL_SHUTDOWN_TYPE_STANDARD:
+ */
+ /* send close notify, but don't wait for clients close notify
+ (standard compliant and safe, so it's the DEFAULT!) */
+ shutdown_type = SSL_RECEIVED_SHUTDOWN;
+ type = "standard";
+ break;
}
SSL_set_shutdown(ssl, shutdown_type);