gnutls-commit
[Top][All Lists]
Advanced

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

[SCM] GNU gnutls branch, master, updated. gnutls_2_9_10-340-gce5fb30


From: Nikos Mavrogiannopoulos
Subject: [SCM] GNU gnutls branch, master, updated. gnutls_2_9_10-340-gce5fb30
Date: Tue, 17 Aug 2010 17:56:27 +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 gnutls".

http://git.savannah.gnu.org/cgit/gnutls.git/commit/?id=ce5fb30e4f4ee12c98d1f576337377bcec0a0f14

The branch, master has been updated
       via  ce5fb30e4f4ee12c98d1f576337377bcec0a0f14 (commit)
      from  18cff36027f8fc0f71a31b3b12dc989e0674a744 (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 ce5fb30e4f4ee12c98d1f576337377bcec0a0f14
Author: Nikos Mavrogiannopoulos <address@hidden>
Date:   Tue Aug 17 19:54:06 2010 +0200

    mini-eagain will fail with EAGAIN error one every two attempts. That is to 
remove probabilities.

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

Summary of changes:
 tests/mini-eagain.c |   71 +++++++++++++++++++++++++++-----------------------
 1 files changed, 38 insertions(+), 33 deletions(-)

diff --git a/tests/mini-eagain.c b/tests/mini-eagain.c
index 0b2cdf6..a83f7f9 100644
--- a/tests/mini-eagain.c
+++ b/tests/mini-eagain.c
@@ -52,16 +52,9 @@ static ssize_t
 client_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
 {
 //  success ("client_pull len %d has %d\n", len, to_client_len);
-  unsigned char rnd;
-  gnutls_rnd(GNUTLS_RND_NONCE, &rnd, 1);
+  static unsigned char rnd = 0;
 
-  if (handshake == 0 && rnd % 2 == 0)
-    {
-      gnutls_transport_set_global_errno (EAGAIN);
-      return -1;
-    }
-
-  if (to_client_len < len)
+  if (rnd++ % 2 == 0 || to_client_len < len)
     {
       gnutls_transport_set_global_errno (EAGAIN);
       return -1;
@@ -80,8 +73,13 @@ client_push (gnutls_transport_ptr_t tr, const void *data, 
size_t len)
 {
   char *tmp;
   size_t newlen = to_server_len + len;
-//  success ("client_push len %d has %d\n", len, to_server_len);
-//  hexprint (data, len);
+  static unsigned char rnd = 0;
+
+  if (rnd++ % 2 == 0)
+    {
+      gnutls_transport_set_global_errno (EAGAIN);
+      return -1;
+    }
 
   tmp = realloc (to_server, newlen);
   if (!tmp)
@@ -101,16 +99,9 @@ static ssize_t
 server_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
 {
   //success ("server_pull len %d has %d\n", len, to_server_len);
-  unsigned char rnd;
+  static unsigned char rnd = 0;
 
-  gnutls_rnd (GNUTLS_RND_NONCE, &rnd, 1);
-  if (handshake == 0 && rnd % 2 == 0)
-    {
-      gnutls_transport_set_global_errno (EAGAIN);
-      return -1;
-    }
-
-  if (to_server_len < len)
+  if (rnd++ % 2 == 0 || to_server_len < len)
     {
       gnutls_transport_set_global_errno (EAGAIN);
       return -1;
@@ -127,13 +118,11 @@ server_pull (gnutls_transport_ptr_t tr, void *data, 
size_t len)
 static ssize_t
 server_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
 {
-  unsigned char rnd;
   char *tmp;
   size_t newlen = to_client_len + len;
+  static unsigned char rnd = 0;
 
-  //success ("server_push len %d has %d\n", len, to_client_len);
-  gnutls_rnd (GNUTLS_RND_NONCE, &rnd, 1);
-  if (handshake == 0 && rnd % 2 == 0)
+  if (rnd++ % 2 == 0)
     {
       gnutls_transport_set_global_errno (EAGAIN);
       return -1;
@@ -156,7 +145,7 @@ server_push (gnutls_transport_ptr_t tr, const void *data, 
size_t len)
 }
 
 #define MAX_BUF 1024
-#define MSG "Hello TLS"
+#define MSG "Hello TLS, and hi and how are you and more data here... and 
more... and even more and even more more data..."
 
 void
 doit (void)
@@ -175,7 +164,7 @@ doit (void)
   const int kx_prio[] = { GNUTLS_KX_ANON_DH, 0 };
   char buffer[MAX_BUF + 1];
   ssize_t ns;
-  int ret, transferred = 0;
+  int ret, transferred = 0, msglen;
 
   /* General init. */
   gnutls_global_init ();
@@ -223,6 +212,7 @@ doit (void)
        }
     }
   while (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN);
+
   handshake = 0;
   if (debug)
     success ("Handshake established\n");
@@ -239,6 +229,8 @@ doit (void)
        fail ("server: didn't receive any data\n");
       else if (ret < 0)
        {
+//     if (debug)
+//          fputs ("#", stdout);
          if (ret != GNUTLS_E_AGAIN)
            {
              fail ("server: error: %s\n", gnutls_strerror (ret));
@@ -248,12 +240,14 @@ doit (void)
       else
        {
          transferred += ret;
-         if (debug)
-           fputs ("*", stdout);
+//       if (debug)
+//         fputs ("*", stdout);
        }
 
-      ns = gnutls_record_send (server, MSG, strlen (MSG));
-      //success ("server: sent %d\n", ns);
+      msglen = strlen(MSG);
+      do {
+        ns = gnutls_record_send (server, MSG, msglen);
+      } while(ns == GNUTLS_E_AGAIN);
 
       ret = gnutls_record_recv (client, buffer, MAX_BUF);
       if (ret == 0)
@@ -262,6 +256,8 @@ doit (void)
        }
       else if (ret < 0)
        {
+         if (debug)
+            fputs ("!", stdout);
          if (ret != GNUTLS_E_AGAIN)
            {
              fail ("client: Error: %s\n", gnutls_strerror (ret));
@@ -270,17 +266,26 @@ doit (void)
        }
       else
        {
+         if (msglen != ret || memcmp(buffer, MSG, msglen) != 0) {
+             fail ("client: Transmitted data do not match\n");
+          }
+
+          /* echo back */
+          do {
+            ns = gnutls_record_send (client, buffer, msglen);
+          } while(ns == GNUTLS_E_AGAIN);
+
          transferred += ret;
          if (debug)
            fputs (".", stdout);
        }
     }
-  while (transferred < 7000);
+  while (transferred < 70000);
   if (debug)
     fputs ("\n", stdout);
 
-  gnutls_bye (client, GNUTLS_SHUT_RDWR);
-  gnutls_bye (server, GNUTLS_SHUT_RDWR);
+  gnutls_bye (client, GNUTLS_SHUT_WR);
+  gnutls_bye (server, GNUTLS_SHUT_WR);
 
   gnutls_deinit (client);
   gnutls_deinit (server);


hooks/post-receive
-- 
GNU gnutls



reply via email to

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