gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [gnunet] branch master updated: when applicable, do connect


From: gnunet
Subject: [GNUnet-SVN] [gnunet] branch master updated: when applicable, do connection selection outside of send_kx*
Date: Sun, 29 Jan 2017 12:40:42 +0100

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

grothoff pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new f61c5da9a when applicable, do connection selection outside of send_kx*
f61c5da9a is described below

commit f61c5da9a44126edcbdfd66712ae1879e39a623d
Author: Christian Grothoff <address@hidden>
AuthorDate: Sun Jan 29 12:40:40 2017 +0100

    when applicable, do connection selection outside of send_kx*
---
 src/cadet/gnunet-service-cadet-new_tunnels.c | 39 ++++++++++++++++++++--------
 1 file changed, 28 insertions(+), 11 deletions(-)

diff --git a/src/cadet/gnunet-service-cadet-new_tunnels.c 
b/src/cadet/gnunet-service-cadet-new_tunnels.c
index f98f46b9b..c08a01f1a 100644
--- a/src/cadet/gnunet-service-cadet-new_tunnels.c
+++ b/src/cadet/gnunet-service-cadet-new_tunnels.c
@@ -1275,35 +1275,38 @@ GCT_change_estate (struct CadetTunnel *t,
 /**
  * Send a KX message.
  *
- * @param t Tunnel on which to send it.
+ * @param t tunnel on which to send the KX_AUTH
+ * @param ct Tunnel and connection on which to send the KX_AUTH, NULL if
+ *           we are to find one that is ready.
  * @param ax axolotl key context to use
  */
 static void
 send_kx (struct CadetTunnel *t,
+         struct CadetTConnection *ct,
          struct CadetTunnelAxolotl *ax)
 {
-  struct CadetTConnection *ct;
   struct CadetConnection *cc;
   struct GNUNET_MQ_Envelope *env;
   struct GNUNET_CADET_TunnelKeyExchangeMessage *msg;
   enum GNUNET_CADET_KX_Flags flags;
 
-  ct = get_ready_connection (t);
+  if (NULL == ct)
+    ct = get_ready_connection (t);
   if (NULL == ct)
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG,
-         "Wanted to send KX on %s, but no connection is ready, deferring\n",
-         GCT_2s (t));
+         "Wanted to send %s in state %s, but no connection is ready, 
deferring\n",
+         GCT_2s (t),
+         estate2s (t->estate));
     t->next_kx_attempt = GNUNET_TIME_absolute_get ();
     return;
   }
   cc = ct->cc;
   LOG (GNUNET_ERROR_TYPE_DEBUG,
-       "Sending KX on  %s using %s in state %s\n",
+       "Sending KX on %s via %s using %s in state %s\n",
        GCT_2s (t),
-       GCC_2s (ct->cc),
+       GCC_2s (cc),
        estate2s (t->estate));
-
   env = GNUNET_MQ_msg (msg,
                        GNUNET_MESSAGE_TYPE_CADET_TUNNEL_KX);
   flags = GNUNET_CADET_KX_FLAG_FORCE_REPLY; /* always for KX */
@@ -1330,23 +1333,27 @@ send_kx (struct CadetTunnel *t,
 /**
  * Send a KX_AUTH message.
  *
- * @param t Tunnel on which to send it.
+ * @param t tunnel on which to send the KX_AUTH
+ * @param ct Tunnel and connection on which to send the KX_AUTH, NULL if
+ *           we are to find one that is ready.
  * @param ax axolotl key context to use
  * @param force_reply Force the other peer to reply with a KX_AUTH message
  *         (set if we would like to transmit right now, but cannot)
  */
 static void
 send_kx_auth (struct CadetTunnel *t,
+              struct CadetTConnection *ct,
               struct CadetTunnelAxolotl *ax,
               int force_reply)
 {
-  struct CadetTConnection *ct;
   struct CadetConnection *cc;
   struct GNUNET_MQ_Envelope *env;
   struct GNUNET_CADET_TunnelKeyExchangeAuthMessage *msg;
   enum GNUNET_CADET_KX_Flags flags;
 
-  ct = get_ready_connection (t);
+  if ( (NULL == ct) ||
+       (GNUNET_NO == ct->is_ready) )
+    ct = get_ready_connection (t);
   if (NULL == ct)
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG,
@@ -1560,6 +1567,7 @@ retry_kx (void *cls)
   case CADET_TUNNEL_KEY_UNINITIALIZED: /* first attempt */
   case CADET_TUNNEL_KEY_AX_SENT:       /* trying again */
     send_kx (t,
+             NULL,
              &t->ax);
     break;
   case CADET_TUNNEL_KEY_AX_RECV:
@@ -1578,6 +1586,7 @@ retry_kx (void *cls)
       ax = &t->ax;
     }
     send_kx_auth (t,
+                  NULL,
                   ax,
                   (0 == GCT_count_channels (t))
                   ? GNUNET_NO
@@ -1598,6 +1607,7 @@ retry_kx (void *cls)
       ax = &t->ax;
     }
     send_kx_auth (t,
+                  NULL,
                   ax,
                   (0 == GCT_count_channels (t))
                   ? GNUNET_NO
@@ -1617,6 +1627,7 @@ retry_kx (void *cls)
       ax = &t->ax;
     }
     send_kx_auth (t,
+                  NULL,
                   ax,
                   GNUNET_NO);
     break;
@@ -1648,6 +1659,7 @@ GCT_handle_kx (struct CadetTConnection *ct,
     LOG (GNUNET_ERROR_TYPE_DEBUG,
          "Got duplicate KX. Firing back KX_AUTH.\n");
     send_kx_auth (t,
+                  ct,
                   &t->ax,
                   GNUNET_NO);
     return;
@@ -1666,6 +1678,7 @@ GCT_handle_kx (struct CadetTConnection *ct,
            "Got duplicate unverified KX on %s. Fire back KX_AUTH again.\n",
            GCT_2s (t));
       send_kx_auth (t,
+                    ct,
                     t->unverified_ax,
                     GNUNET_NO);
       return;
@@ -2145,6 +2158,7 @@ connection_ready_cb (void *cls,
       t->kx_task = NULL;
     }
     send_kx (t,
+             ct,
              &t->ax);
     break;
   case CADET_TUNNEL_KEY_AX_RECV:
@@ -2167,6 +2181,7 @@ connection_ready_cb (void *cls,
         t->kx_task = NULL;
       }
       send_kx_auth (t,
+                    ct,
                     &t->ax,
                     GNUNET_NO);
       return;
@@ -2776,6 +2791,7 @@ GCT_handle_encrypted (struct CadetTConnection *ct,
       t->kx_task = NULL;
     }
     send_kx_auth (t,
+                  ct,
                   &t->ax,
                   GNUNET_YES);
     return;
@@ -2792,6 +2808,7 @@ GCT_handle_encrypted (struct CadetTConnection *ct,
       t->kx_task = NULL;
     }
     send_kx (t,
+             ct,
              &t->ax);
     return;
   case CADET_TUNNEL_KEY_AX_AUTH_SENT:

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



reply via email to

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