[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[Libevent-users] Write watermarks in ssl bufferevents not working?
Hi,
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).
Attached is a patch that fixes this.
Best regards,
Joachim
diff --git a/bufferevent_openssl.c b/bufferevent_openssl.c
index fcc733b..2a448cd 100644
--- a/bufferevent_openssl.c
+++ b/bufferevent_openssl.c
@@ -171,8 +171,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;