diff options
author | Christian Grothoff <christian@grothoff.org> | 2018-05-20 00:35:13 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2018-05-20 00:36:20 +0200 |
commit | 0be37e812d034754eb725701f237fbc81b973904 (patch) | |
tree | c50481209ec97b5dbbd075489255477c5e761d3d /src/cadet/gnunet-service-cadet_peer.c | |
parent | c227e3f00efb4b3677e9b85c0273a7bf5fbcb4a9 (diff) | |
download | gnunet-0be37e812d034754eb725701f237fbc81b973904.tar.gz gnunet-0be37e812d034754eb725701f237fbc81b973904.zip |
fix off-by-one error in cadet connection construction, also enforce better timeouts for retransmissions of handshake
Diffstat (limited to 'src/cadet/gnunet-service-cadet_peer.c')
-rw-r--r-- | src/cadet/gnunet-service-cadet_peer.c | 38 |
1 files changed, 31 insertions, 7 deletions
diff --git a/src/cadet/gnunet-service-cadet_peer.c b/src/cadet/gnunet-service-cadet_peer.c index 05555e693..35e2c6148 100644 --- a/src/cadet/gnunet-service-cadet_peer.c +++ b/src/cadet/gnunet-service-cadet_peer.c | |||
@@ -242,12 +242,15 @@ struct CadetPeer | |||
242 | const char * | 242 | const char * |
243 | GCP_2s (const struct CadetPeer *cp) | 243 | GCP_2s (const struct CadetPeer *cp) |
244 | { | 244 | { |
245 | static char buf[32]; | 245 | static char buf[5]; |
246 | 246 | char *ret; | |
247 | GNUNET_snprintf (buf, | 247 | |
248 | sizeof (buf), | 248 | ret = GNUNET_CRYPTO_eddsa_public_key_to_string (&cp->pid.public_key); |
249 | "P(%s)", | 249 | strncpy (buf, |
250 | GNUNET_i2s (&cp->pid)); | 250 | ret, |
251 | sizeof (buf) - 1); | ||
252 | GNUNET_free (ret); | ||
253 | buf[4] = '\0'; | ||
251 | return buf; | 254 | return buf; |
252 | } | 255 | } |
253 | 256 | ||
@@ -649,6 +652,27 @@ mqm_execute (struct GCP_MessageQueueManager *mqm) | |||
649 | } | 652 | } |
650 | else | 653 | else |
651 | { | 654 | { |
655 | { | ||
656 | const struct GNUNET_MessageHeader *mh; | ||
657 | |||
658 | mh = GNUNET_MQ_env_get_msg (mqm->env); | ||
659 | switch (ntohs (mh->type)) | ||
660 | { | ||
661 | case GNUNET_MESSAGE_TYPE_CADET_TUNNEL_KX: | ||
662 | { | ||
663 | const struct GNUNET_CADET_TunnelKeyExchangeMessage *msg | ||
664 | = (const struct GNUNET_CADET_TunnelKeyExchangeMessage *) mh; | ||
665 | LOG (GNUNET_ERROR_TYPE_DEBUG, | ||
666 | "P2P forwarding KX with ephemeral %s to %s on CID %s\n", | ||
667 | GNUNET_e2s (&msg->ephemeral_key), | ||
668 | GCP_2s (cp), | ||
669 | GNUNET_sh2s (&msg->cid.connection_of_tunnel)); | ||
670 | } | ||
671 | break; | ||
672 | default: | ||
673 | break; | ||
674 | } | ||
675 | } | ||
652 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 676 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
653 | "Sending to peer %s from MQM %p\n", | 677 | "Sending to peer %s from MQM %p\n", |
654 | GCP_2s (cp), | 678 | GCP_2s (cp), |
@@ -1044,7 +1068,7 @@ GCP_add_connection (struct CadetPeer *cp, | |||
1044 | struct CadetConnection *cc) | 1068 | struct CadetConnection *cc) |
1045 | { | 1069 | { |
1046 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 1070 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
1047 | "Adding connection %s to peer %s\n", | 1071 | "Adding %s to peer %s\n", |
1048 | GCC_2s (cc), | 1072 | GCC_2s (cc), |
1049 | GCP_2s (cp)); | 1073 | GCP_2s (cp)); |
1050 | GNUNET_assert (GNUNET_OK == | 1074 | GNUNET_assert (GNUNET_OK == |