myserver-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myserver-commit] [SCM] GNU MyServer branch, master, updated. v0.9.2-440


From: Giuseppe Scrivano
Subject: [myserver-commit] [SCM] GNU MyServer branch, master, updated. v0.9.2-440-g5119cca
Date: Thu, 14 Apr 2011 20:59:13 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU MyServer".

The branch, master has been updated
       via  5119cca140dad223a8a00673d0acd43c443019e9 (commit)
      from  825e5c521789a197babeea53fb14539814e399de (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------


commit 5119cca140dad223a8a00673d0acd43c443019e9
Author: Giuseppe Scrivano <address@hidden>
Date:   Thu Apr 14 22:54:00 2011 +0200

    ssl: ensure rawSend consumes the whole buffer before return.

diff --git a/myserver/src/base/socket/ssl_socket.cpp 
b/myserver/src/base/socket/ssl_socket.cpp
index ea96157..f7e4e8f 100644
--- a/myserver/src/base/socket/ssl_socket.cpp
+++ b/myserver/src/base/socket/ssl_socket.cpp
@@ -99,17 +99,22 @@ int SslSocket::shutdown (int how)
  */
 int SslSocket::rawSend (const char* buffer, int len, int flags)
 {
+  int sent = 0;
   int err;
   do
     {
-      err = SSL_write (sslConnection, buffer, len);
-    }while ((err <= 0) &&
-            (SSL_get_error (sslConnection, err) == SSL_ERROR_WANT_WRITE
-             || SSL_get_error (sslConnection, err) == SSL_ERROR_WANT_READ));
-  if (err <= 0)
+      err = SSL_write (sslConnection, buffer + sent, len - sent);
+      if (err > 0)
+        sent += err;
+    }
+  while ((err <= 0
+          && SSL_get_error (sslConnection, err) == SSL_ERROR_WANT_WRITE)
+         || (err > 0 && sent < len));
+
+  if (err < 0)
     return -1;
   else
-    return err;
+    return sent;
 }
 
 /*!

-----------------------------------------------------------------------

Summary of changes:
 myserver/src/base/socket/ssl_socket.cpp |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)


hooks/post-receive
-- 
GNU MyServer



reply via email to

[Prev in Thread] Current Thread [Next in Thread]