Browse Source

fix the fix...with the last change taskrambler closes connections unexpectedly. Hopefully this fixes ssl handling.

release0.1.5 v0.1.5
Georg Hopp 12 years ago
parent
commit
6969258705
  1. 9
      src/stream/read.c
  2. 7
      src/stream/write.c

9
src/stream/read.c

@ -66,7 +66,9 @@ streamRead(Stream this, void * buf, size_t count)
case STREAM_SSL:
done = SSL_read((this->handle).ssl, buf, count);
if (0 >= done) {
if (0 == done) {
done = -2;
} else if (0 > done) {
switch (SSL_get_error((this->handle).ssl, done)) {
case SSL_ERROR_SYSCALL:
{
@ -80,7 +82,7 @@ streamRead(Stream this, void * buf, size_t count)
done = -1;
break;
default:
done = -2;
done = -1;
break;
}
}
@ -100,7 +102,6 @@ streamRead(Stream this, void * buf, size_t count)
// DROP THROUGH
case SSL_ERROR_ZERO_RETURN:
default:
done = -2;
break;
}
@ -109,7 +110,7 @@ streamRead(Stream this, void * buf, size_t count)
break;
default:
done = 0;
done = -2;
break;
}

7
src/stream/write.c

@ -70,7 +70,9 @@ streamWrite(Stream this, void * buf, size_t count)
*/
done = SSL_write((this->handle).ssl, buf, count);
if (0 >= done) {
if (0 == done) {
done = -2;
} else if (0 > done) {
switch (SSL_get_error((this->handle).ssl, done)) {
case SSL_ERROR_SYSCALL:
{
@ -104,7 +106,6 @@ streamWrite(Stream this, void * buf, size_t count)
// DROP THROUGH
case SSL_ERROR_ZERO_RETURN:
default:
done = -2;
break;
}
@ -113,7 +114,7 @@ streamWrite(Stream this, void * buf, size_t count)
break;
default:
done = 0;
done = -2;
break;
}

Loading…
Cancel
Save