gnunet-svn
[Top][All Lists]
Advanced

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

[gnunet] branch master updated (99d3589e5 -> fd8f467fe)


From: gnunet
Subject: [gnunet] branch master updated (99d3589e5 -> fd8f467fe)
Date: Wed, 25 Dec 2019 11:42:42 +0100

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a change to branch master
in repository gnunet.

    from 99d3589e5 update configs
     new d0f2906ee more minor communicator fixes
     new fd8f467fe better test for comms

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/transport/gnunet-communicator-tcp.c         |  51 +++++--
 src/transport/test_communicator_basic.c         | 170 ++++++++++++++++--------
 src/transport/test_communicator_unix_peer1.conf |   4 +-
 src/transport/test_communicator_unix_peer2.conf |   4 +-
 src/transport/test_transport_defaults.conf      |   2 +-
 5 files changed, 157 insertions(+), 74 deletions(-)

diff --git a/src/transport/gnunet-communicator-tcp.c 
b/src/transport/gnunet-communicator-tcp.c
index b577a96a6..7207eb922 100644
--- a/src/transport/gnunet-communicator-tcp.c
+++ b/src/transport/gnunet-communicator-tcp.c
@@ -1002,6 +1002,8 @@ queue_read (void *cls)
   rcvd = GNUNET_NETWORK_socket_recv (queue->sock,
                                      &queue->cread_buf[queue->cread_off],
                                      BUF_SIZE - queue->cread_off);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Received %lu bytes from TCP queue\n", rcvd);
   if (-1 == rcvd)
   {
     if ((EAGAIN != errno) && (EINTR != errno))
@@ -1011,6 +1013,7 @@ queue_read (void *cls)
       return;
     }
     /* try again */
+    left = GNUNET_TIME_absolute_get_remaining (queue->timeout);
     queue->read_task =
       GNUNET_SCHEDULER_add_read_net (left, queue->sock, &queue_read, queue);
     return;
@@ -1052,7 +1055,8 @@ queue_read (void *cls)
        wrong key for everything after the rekey; in that case, we have
        to re-do the decryption at 'total' instead of at 'max'. If there
        is no rekey and the last message is incomplete (max > total),
-       it is safe to keep the decryption so we shift by 'max' */if (GNUNET_YES 
== queue->rekeyed)
+       it is safe to keep the decryption so we shift by 'max' */
+    if (GNUNET_YES == queue->rekeyed)
     {
       max = total;
       queue->rekeyed = GNUNET_NO;
@@ -1069,6 +1073,7 @@ queue_read (void *cls)
     if (max_queue_length < queue->backpressure)
     {
       /* continue reading */
+      left = GNUNET_TIME_absolute_get_remaining (queue->timeout);
       queue->read_task =
         GNUNET_SCHEDULER_add_read_net (left, queue->sock, &queue_read, queue);
     }
@@ -1122,7 +1127,7 @@ tcp_address_to_sockaddr (const char *bindto, socklen_t 
*sock_len)
       i4->sin_family = AF_INET;
       i4->sin_port = htons ((uint16_t) port);
 #if HAVE_SOCKADDR_IN_SIN_LEN
-      sa4.sin_len = sizeof(sizeof(struct sockaddr_in));
+      i4->sin_len = sizeof(sizeof(struct sockaddr_in));
 #endif
       *sock_len = sizeof(struct sockaddr_in);
       in = (struct sockaddr *) i4;
@@ -1135,7 +1140,7 @@ tcp_address_to_sockaddr (const char *bindto, socklen_t 
*sock_len)
       i6->sin6_family = AF_INET6;
       i6->sin6_port = htons ((uint16_t) port);
 #if HAVE_SOCKADDR_IN_SIN_LEN
-      sa6.sin6_len = sizeof(sizeof(struct sockaddr_in6));
+      i6->sin6_len = sizeof(sizeof(struct sockaddr_in6));
 #endif
       *sock_len = sizeof(struct sockaddr_in6);
       in = (struct sockaddr *) i6;
@@ -1182,6 +1187,7 @@ tcp_address_to_sockaddr (const char *bindto, socklen_t 
*sock_len)
 
     if (1 == inet_pton (AF_INET, cp, &v4))
     {
+      v4.sin_family = AF_INET;
       v4.sin_port = htons ((uint16_t) port);
       in = GNUNET_memdup (&v4, sizeof(v4));
       *sock_len = sizeof(v4);
@@ -1202,6 +1208,7 @@ tcp_address_to_sockaddr (const char *bindto, socklen_t 
*sock_len)
     }
     if (1 == inet_pton (AF_INET6, start, &v6))
     {
+      v6.sin6_family = AF_INET6;
       v6.sin6_port = htons ((uint16_t) port);
       in = GNUNET_memdup (&v6, sizeof(v6));
       *sock_len = sizeof(v6);
@@ -1283,13 +1290,15 @@ queue_write (void *cls)
 {
   struct Queue *queue = cls;
   ssize_t sent;
-
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "In queue write\n");
   queue->write_task = NULL;
   if (0 != queue->cwrite_off)
   {
     sent = GNUNET_NETWORK_socket_send (queue->sock,
                                        queue->cwrite_buf,
                                        queue->cwrite_off);
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "Sent %lu bytes to TCP queue\n", sent);
     if ((-1 == sent) && (EAGAIN != errno) && (EINTR != errno))
     {
       GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "send");
@@ -1299,18 +1308,21 @@ queue_write (void *cls)
     if (sent > 0)
     {
       size_t usent = (size_t) sent;
-
+      queue->cwrite_off -= usent;
       memmove (queue->cwrite_buf,
                &queue->cwrite_buf[usent],
-               queue->cwrite_off - usent);
+               queue->cwrite_off);
       reschedule_queue_timeout (queue);
     }
   }
   /* can we encrypt more? (always encrypt full messages, needed
      such that #mq_cancel() can work!) */
   if ((0 < queue->rekey_left_bytes) &&
+      (queue->pwrite_off > 0) &&
       (queue->cwrite_off + queue->pwrite_off <= BUF_SIZE))
   {
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "Encrypting %lu bytes\n", queue->pwrite_off);
     GNUNET_assert (0 ==
                    gcry_cipher_encrypt (queue->out_cipher,
                                         &queue->cwrite_buf[queue->cwrite_off],
@@ -1342,6 +1354,8 @@ queue_write (void *cls)
   /* did we just finish writing 'finish'? */
   if ((0 == queue->cwrite_off) && (GNUNET_YES == queue->finishing))
   {
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "Finishing queue\n");
     queue_destroy (queue);
     return;
   }
@@ -1371,18 +1385,23 @@ mq_send (struct GNUNET_MQ_Handle *mq,
   struct Queue *queue = impl_state;
   uint16_t msize = ntohs (msg->size);
   struct TCPBox box;
-
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "In MQ send. Queue finishing: %s; write task running: %s\n",
+              (GNUNET_YES == queue->finishing) ? "yes" : "no",
+              (NULL == queue->write_task) ? "yes" : "no");
   GNUNET_assert (mq == queue->mq);
   if (GNUNET_YES == queue->finishing)
     return; /* this queue is dying, drop msg */
-  GNUNET_assert (0 == queue->pread_off);
+  GNUNET_assert (0 == queue->pwrite_off);
   box.header.type = htons (GNUNET_MESSAGE_TYPE_COMMUNICATOR_TCP_BOX);
   box.header.size = htons (msize);
   calculate_hmac (&queue->out_hmac, msg, msize, &box.hmac);
-  memcpy (&queue->pread_buf[queue->pread_off], &box, sizeof(box));
-  queue->pread_off += sizeof(box);
-  memcpy (&queue->pread_buf[queue->pread_off], msg, msize);
-  queue->pread_off += msize;
+  memcpy (&queue->pwrite_buf[queue->pwrite_off], &box, sizeof(box));
+  queue->pwrite_off += sizeof(box);
+  memcpy (&queue->pwrite_buf[queue->pwrite_off], msg, msize);
+  queue->pwrite_off += msize;
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "%lu bytes of plaintext to send\n", queue->pwrite_off);
   GNUNET_assert (NULL != queue->sock);
   if (NULL == queue->write_task)
     queue->write_task =
@@ -1659,6 +1678,8 @@ proto_read_kx (void *cls)
   rcvd = GNUNET_NETWORK_socket_recv (pq->sock,
                                      &pq->ibuf[pq->ibuf_off],
                                      sizeof(pq->ibuf) - pq->ibuf_off);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Received %lu bytes for KX\n", rcvd);
   if (-1 == rcvd)
   {
     if ((EAGAIN != errno) && (EINTR != errno))
@@ -1787,6 +1808,7 @@ queue_read_kx (void *cls)
   rcvd = GNUNET_NETWORK_socket_recv (queue->sock,
                                      &queue->cread_buf[queue->cread_off],
                                      BUF_SIZE - queue->cread_off);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received %lu bytes for KX\n", rcvd);
   if (-1 == rcvd)
   {
     if ((EAGAIN != errno) && (EINTR != errno))
@@ -1867,6 +1889,8 @@ mq_init (void *cls, const struct GNUNET_PeerIdentity 
*peer, const char *address)
   socklen_t in_len;
   struct GNUNET_NETWORK_Handle *sock;
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Connecting to %s\n", address);
   if (0 != strncmp (address,
                     COMMUNICATOR_ADDRESS_PREFIX "-",
                     strlen (COMMUNICATOR_ADDRESS_PREFIX "-")))
@@ -1887,7 +1911,8 @@ mq_init (void *cls, const struct GNUNET_PeerIdentity 
*peer, const char *address)
     GNUNET_free (in);
     return GNUNET_SYSERR;
   }
-  if (GNUNET_OK != GNUNET_NETWORK_socket_connect (sock, in, in_len))
+  if (GNUNET_OK != GNUNET_NETWORK_socket_connect (sock, in, in_len) &&
+      (errno != EINPROGRESS))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
                 "connect to `%s' failed: %s",
diff --git a/src/transport/test_communicator_basic.c 
b/src/transport/test_communicator_basic.c
index ef91e133d..7ae50be05 100644
--- a/src/transport/test_communicator_basic.c
+++ b/src/transport/test_communicator_basic.c
@@ -41,6 +41,10 @@
 
 #define NUM_PEERS 2
 
+static struct GNUNET_SCHEDULER_Task *to_task;
+
+static int queue_est = GNUNET_NO;
+
 static struct GNUNET_PeerIdentity peer_id[NUM_PEERS];
 
 static char *communicator_binary;
@@ -124,12 +128,16 @@ add_address_cb (void *cls,
        aid,
        nt);
   // addresses[1] = GNUNET_strdup (address);
-  if (0 == strcmp ((char*) cls, cfg_peers_name[NUM_PEERS - 1]))
+  if ((0 == strcmp ((char*) cls, cfg_peers_name[NUM_PEERS - 1])) &&
+      (GNUNET_NO == queue_est))
+  {
+    queue_est = GNUNET_YES;
     GNUNET_TRANSPORT_TESTING_transport_communicator_open_queue (tc_hs[0],
                                                                 &peer_id[
                                                                   NUM_PEERS
                                                                   - 1],
                                                                 address);
+  }
 }
 
 
@@ -175,6 +183,18 @@ make_payload (size_t payload_size)
 }
 
 
+static void
+latency_timeout (void *cls)
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+              "Latency too high. Test failed. (Phase: %d. Received: %lu\n",
+              phase, num_received);
+  ret = 2;
+  to_task = NULL;
+  GNUNET_SCHEDULER_shutdown ();
+}
+
+
 static void
 size_test (void *cls)
 {
@@ -190,24 +210,13 @@ size_test (void *cls)
     GNUNET_free (payload);
     ack += 5;
     num_sent++;
+    if (NULL == to_task)
+      to_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
+                                              &latency_timeout,
+                                              NULL);
     if (ack < 64000)
       GNUNET_SCHEDULER_add_now (&size_test, NULL);
-    else
-      GNUNET_SCHEDULER_add_delayed (SHORT_BURST_WINDOW,
-                                    &size_test, NULL);
-    return;
   }
-  GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
-              "Size packet test done.\n");
-  GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
-              "%lu/%lu packets -- avg latency: %lu us\n",
-              num_received,
-              num_sent,
-              avg_latency);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Finished\n");
-  GNUNET_SCHEDULER_shutdown ();
-  // Finished!
 }
 
 
@@ -223,27 +232,17 @@ long_test (void *cls)
                                                           LONG_MESSAGE_SIZE);
     num_sent++;
     GNUNET_free (payload);
-    if (num_sent < BURST_PACKETS)
-      GNUNET_SCHEDULER_add_now (&long_test, NULL);
-    if (num_sent == BURST_PACKETS)
-      GNUNET_SCHEDULER_add_delayed (LONG_BURST_WINDOW,
-                                    &long_test, NULL);
+    if (NULL == to_task)
+      to_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
+                                              &latency_timeout,
+                                              NULL);
+
+    GNUNET_SCHEDULER_add_now (&long_test, NULL);
+    //if (num_sent == BURST_PACKETS)
+    //  GNUNET_SCHEDULER_add_delayed (LONG_BURST_WINDOW,
+    //                                &long_test, NULL);
     return;
   }
-  GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
-              "Long size packet test done.\n");
-  GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
-              "%lu/%lu packets in %lu us (%lu kb/s) -- avg latency: %lu us\n",
-              num_received,
-              num_sent,
-              duration.rel_value_us,
-              (LONG_MESSAGE_SIZE * num_received) / (duration.rel_value_us / 
1000),
-              avg_latency);
-  ack = 10;
-  num_received = 0;
-  num_sent = 0;
-  avg_latency = 0;
-  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &size_test, NULL);
 }
 
 
@@ -251,7 +250,7 @@ static void
 short_test (void *cls)
 {
   char *payload;
-  while (num_sent < BURST_PACKETS)
+  if (num_sent < BURST_PACKETS)
   {
     payload = make_payload (SHORT_MESSAGE_SIZE);
     GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc,
@@ -259,33 +258,23 @@ short_test (void *cls)
                                                           SHORT_MESSAGE_SIZE);
     num_sent++;
     GNUNET_free (payload);
-    //if (num_sent < BURST_PACKETS)
-    //  GNUNET_SCHEDULER_add_now (&short_test, NULL);
-    if (num_sent == BURST_PACKETS)
+    if (NULL == to_task)
+      to_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
+                                              &latency_timeout,
+                                              NULL);
+
+    GNUNET_SCHEDULER_add_now (&short_test, NULL);
+    /*if (num_sent == BURST_PACKETS)
     {
       GNUNET_SCHEDULER_add_delayed (SHORT_BURST_WINDOW,
                                     &short_test, NULL);
       return;
-    }
+    }*/
   }
-  GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
-              "Short size packet test done.\n");
-  GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
-              "%lu/%lu packets in %lu us (%lu kb/s) -- avg latency: %lu us\n",
-              num_received,
-              num_sent,
-              duration.rel_value_us,
-              (SHORT_MESSAGE_SIZE * num_received) / (duration.rel_value_us / 
1000),
-              avg_latency);
-  start_long = GNUNET_TIME_absolute_get ();
-  phase = BURST_LONG;
-  num_sent = 0;
-  avg_latency = 0;
-  num_received = 0;
-  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &long_test, NULL);
 }
 
 
+
 /**
  * @brief Handle opening of queue
  *
@@ -361,6 +350,28 @@ incoming_message_cb (void *cls,
     num_received++;
     duration = GNUNET_TIME_absolute_get_duration (start_short);
     update_avg_latency (payload);
+    if (num_received == BURST_PACKETS)
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
+                  "Short size packet test done.\n");
+      GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
+                  "%lu/%lu packets in %llu us (%llu kb/s) -- avg latency: %llu 
us\n",
+                  num_received,
+                  num_sent,
+                  duration.rel_value_us,
+                  (SHORT_MESSAGE_SIZE * num_received) / (duration.rel_value_us
+                                                         / 1000),
+                  avg_latency);
+      start_long = GNUNET_TIME_absolute_get ();
+      phase = BURST_LONG;
+      num_sent = 0;
+      avg_latency = 0;
+      num_received = 0;
+      GNUNET_SCHEDULER_cancel (to_task);
+      to_task = NULL;
+      GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &long_test, 
NULL);
+    }
+
   }
   else if (phase == BURST_LONG)
   {
@@ -373,11 +384,58 @@ incoming_message_cb (void *cls,
     num_received++;
     duration = GNUNET_TIME_absolute_get_duration (start_long);
     update_avg_latency (payload);
+    if (num_received == BURST_PACKETS)
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
+                  "Long size packet test done.\n");
+      GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
+                  "%lu/%lu packets in %llu us (%llu kb/s) -- avg latency: %llu 
us\n",
+                  num_received,
+                  num_sent,
+                  duration.rel_value_us,
+                  (LONG_MESSAGE_SIZE * num_received) / (duration.rel_value_us
+                                                        / 1000),
+                  avg_latency);
+      ack = 10;
+      phase = SIZE_CHECK;
+      num_received = 0;
+      num_sent = 0;
+      avg_latency = 0;
+      GNUNET_SCHEDULER_cancel (to_task);
+      to_task = NULL;
+      GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &size_test, 
NULL);
+
+    }
   }
   else         // if (phase == SIZE_CHECK) {
   {
     num_received++;
     update_avg_latency (payload);
+    if (num_received >= (64000 - 10) / 5)
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
+                  "Size packet test done.\n");
+      GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
+                  "%lu/%lu packets -- avg latency: %llu us\n",
+                  num_received,
+                  num_sent,
+                  avg_latency);
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                  "Finished\n");
+      GNUNET_SCHEDULER_cancel (to_task);
+      to_task = NULL;
+      GNUNET_SCHEDULER_shutdown ();
+      // Finished!
+      // }
+    }
+  }
+  // Reset timeout
+  if (to_task != NULL)
+  {
+    GNUNET_SCHEDULER_cancel (to_task);
+    to_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
+                                            &latency_timeout,
+                                            NULL);
   }
 }
 
@@ -404,7 +462,7 @@ run (void *cls)
       &queue_create_reply_cb,
       &add_queue_cb,
       &incoming_message_cb,
-      cfg_peers_name[i]); /* cls */
+      cfg_peers_name[i]);   /* cls */
   }
 }
 
diff --git a/src/transport/test_communicator_unix_peer1.conf 
b/src/transport/test_communicator_unix_peer1.conf
index 411b7f587..d50588007 100644
--- a/src/transport/test_communicator_unix_peer1.conf
+++ b/src/transport/test_communicator_unix_peer1.conf
@@ -17,11 +17,11 @@ PORT = 60000
 UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-transport_test_1.sock
 
 [nat]
-UNIXPATH = $GNUNET_TMP/test-communicator-unix-1/nat.sock
+UNIXPATH = $GNUNET_TMP/communicator-unix-1/nat.sock
 ENABLE_IPSCAN = YES
 
 [communicator-unix]
-UNIXPATH = $GNUNET_RUNTIME_DIR/test_gnunet-communicator-unix_1.sock
+UNIXPATH = $GNUNET_RUNTIME_DIR/communicator-unix-1.sock
 
 [communicator-tcp]
 BINDTO = 60002
diff --git a/src/transport/test_communicator_unix_peer2.conf 
b/src/transport/test_communicator_unix_peer2.conf
index d06ef0d1e..fe27ef1a6 100644
--- a/src/transport/test_communicator_unix_peer2.conf
+++ b/src/transport/test_communicator_unix_peer2.conf
@@ -18,10 +18,10 @@ PORT = 60001
 UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-transport_test_2.sock
 
 [nat]
-UNIXPATH = $GNUNET_TMP/test-communicator-unix-2/nat.sock
+UNIXPATH = $GNUNET_TMP/communicator-unix-2/nat.sock
 
 [communicator-unix]
-UNIXPATH = $GNUNET_RUNTIME_DIR/test_gnunet-communicator-unix_2.sock
+UNIXPATH = $GNUNET_RUNTIME_DIR/communicator-unix-2.sock
 
 [communicator-tcp]
 BINDTO = 60003
diff --git a/src/transport/test_transport_defaults.conf 
b/src/transport/test_transport_defaults.conf
index 3f38eeab7..3aed73f0c 100644
--- a/src/transport/test_transport_defaults.conf
+++ b/src/transport/test_transport_defaults.conf
@@ -1,7 +1,7 @@
 @INLINE@ ../../contrib/conf/gnunet/no_forcestart.conf
 
 [PATHS]
-GNUNET_TEST_HOME = $GNUNET_TMP/test-transport-api/
+GNUNET_TEST_HOME = $GNUNET_TMP/test-tng/
 
 [transport-tcp]
 TIMEOUT = 300 s

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

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