diff options
author | Adam Tkac <atkac@redhat.com> | 2010-08-25 13:52:49 +0000 |
---|---|---|
committer | Adam Tkac <atkac@redhat.com> | 2010-08-25 13:52:49 +0000 |
commit | fab093c637cb0d8837802869321cd0abed7f156c (patch) | |
tree | bb5165469cfd6160cb611ab36db6395e399cdd33 /common/rdr/TLSOutStream.cxx | |
parent | 8109fc96635b24cc9f185003b1c0e2c6076b72fd (diff) | |
download | tigervnc-fab093c637cb0d8837802869321cd0abed7f156c.tar.gz tigervnc-fab093c637cb0d8837802869321cd0abed7f156c.zip |
[Bugfix] Properly report transport errors to GNUTLS.
Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4125 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'common/rdr/TLSOutStream.cxx')
-rw-r--r-- | common/rdr/TLSOutStream.cxx | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/common/rdr/TLSOutStream.cxx b/common/rdr/TLSOutStream.cxx index 59edf150..888b455b 100644 --- a/common/rdr/TLSOutStream.cxx +++ b/common/rdr/TLSOutStream.cxx @@ -25,6 +25,7 @@ #include <rdr/Exception.h> #include <rdr/TLSException.h> #include <rdr/TLSOutStream.h> +#include <errno.h> #ifdef HAVE_GNUTLS using namespace rdr; @@ -35,8 +36,15 @@ ssize_t rdr::gnutls_OutStream_push(gnutls_transport_ptr str, const void* data, size_t size) { OutStream* out = (OutStream*) str; - out->writeBytes(data, size); - out->flush(); + + try { + out->writeBytes(data, size); + out->flush(); + } catch (Exception& e) { + gnutls_transport_set_global_errno(EINVAL); + return -1; + } + return size; } |