[ovs-dev] [PATCH 5/7] stream-ssl: Fix ssl_recv() and ssl_send() return value semantics.
Ben Pfaff
blp at nicira.com
Thu Jan 7 23:01:29 UTC 2010
These functions' return value semantics did not match those documented
in stream-provider.h.
---
lib/stream-ssl.c | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/lib/stream-ssl.c b/lib/stream-ssl.c
index 436dc7b..6839341 100644
--- a/lib/stream-ssl.c
+++ b/lib/stream-ssl.c
@@ -549,7 +549,8 @@ ssl_recv(struct stream *stream, void *buffer, size_t n)
if (error == SSL_ERROR_ZERO_RETURN) {
return 0;
} else {
- return interpret_ssl_error("SSL_read", ret, error, &sslv->rx_want);
+ return -interpret_ssl_error("SSL_read", ret, error,
+ &sslv->rx_want);
}
}
}
@@ -597,7 +598,7 @@ ssl_send(struct stream *stream, const void *buffer, size_t n)
struct ssl_stream *sslv = ssl_stream_cast(stream);
if (sslv->txbuf) {
- return EAGAIN;
+ return -EAGAIN;
} else {
int error;
@@ -606,13 +607,13 @@ ssl_send(struct stream *stream, const void *buffer, size_t n)
switch (error) {
case 0:
ssl_clear_txbuf(sslv);
- return 0;
+ return n;
case EAGAIN:
leak_checker_claim(buffer);
- return 0;
+ return n;
default:
sslv->txbuf = NULL;
- return error;
+ return -error;
}
}
}
--
1.6.3.3
More information about the dev
mailing list