Fix bug in SSL bufferevents backed by a bev with a write high-watermarks

Original mail:

   the logic that handles write watermarks in "bio_bufferevent_write"
   is not working. It currently doesn't write any data if the high
   watermark is *above* the amount of data to write (i.e. when there
   is actually enough room available).
This commit is contained in:
Joachim Bauch 2011-07-04 11:36:14 -04:00 committed by Nick Mathewson
parent 8ee9f9c1cf
commit e050703d47

View File

@ -170,8 +170,8 @@ bio_bufferevent_write(BIO *b, const char *in, int inlen)
/* Copy only as much data onto the output buffer as can fit under the
* high-water mark. */
if (bufev->wm_write.high && bufev->wm_write.high >= (outlen+inlen)) {
if (bufev->wm_write.high >= outlen) {
if (bufev->wm_write.high && bufev->wm_write.high <= (outlen+inlen)) {
if (bufev->wm_write.high <= outlen) {
/* If no data can fit, we'll need to retry later. */
BIO_set_retry_write(b);
return -1;