aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorBart Polot <bart.polot+gnunet@gmail.com>2017-02-20 19:13:59 +0100
committerBart Polot <bart.polot+gnunet@gmail.com>2017-02-20 19:17:40 +0100
commitba5817a7dbaef67b871606431d9a9a7f82d5bdf8 (patch)
tree747bdbac51436264cbf64c59c594dbd356393f9e /src/core
parent6b6a966864221ffa0d52d311da3b68f6c42549be (diff)
downloadgnunet-ba5817a7dbaef67b871606431d9a9a7f82d5bdf8.tar.gz
gnunet-ba5817a7dbaef67b871606431d9a9a7f82d5bdf8.zip
Refactor copying of handler arrays
Diffstat (limited to 'src/core')
-rw-r--r--src/core/core_api.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/src/core/core_api.c b/src/core/core_api.c
index afae20850..c1cfdb62f 100644
--- a/src/core/core_api.c
+++ b/src/core/core_api.c
@@ -784,7 +784,6 @@ GNUNET_CORE_connect (const struct GNUNET_CONFIGURATION_Handle *cfg,
784 const struct GNUNET_MQ_MessageHandler *handlers) 784 const struct GNUNET_MQ_MessageHandler *handlers)
785{ 785{
786 struct GNUNET_CORE_Handle *h; 786 struct GNUNET_CORE_Handle *h;
787 unsigned int hcnt;
788 787
789 h = GNUNET_new (struct GNUNET_CORE_Handle); 788 h = GNUNET_new (struct GNUNET_CORE_Handle);
790 h->cfg = cfg; 789 h->cfg = cfg;
@@ -794,18 +793,9 @@ GNUNET_CORE_connect (const struct GNUNET_CONFIGURATION_Handle *cfg,
794 h->disconnects = disconnects; 793 h->disconnects = disconnects;
795 h->peers = GNUNET_CONTAINER_multipeermap_create (128, 794 h->peers = GNUNET_CONTAINER_multipeermap_create (128,
796 GNUNET_NO); 795 GNUNET_NO);
797 hcnt = 0; 796 h->handlers = GNUNET_MQ_copy_handlers (handlers);
798 if (NULL != handlers) 797 h->hcnt = GNUNET_MQ_count_handlers (handlers);
799 while (NULL != handlers[hcnt].cb) 798 GNUNET_assert (h->hcnt <
800 hcnt++;
801 h->handlers = GNUNET_new_array (hcnt + 1,
802 struct GNUNET_MQ_MessageHandler);
803 if (NULL != handlers)
804 GNUNET_memcpy (h->handlers,
805 handlers,
806 hcnt * sizeof (struct GNUNET_MQ_MessageHandler));
807 h->hcnt = hcnt;
808 GNUNET_assert (hcnt <
809 (GNUNET_SERVER_MAX_MESSAGE_SIZE - 799 (GNUNET_SERVER_MAX_MESSAGE_SIZE -
810 sizeof (struct InitMessage)) / sizeof (uint16_t)); 800 sizeof (struct InitMessage)) / sizeof (uint16_t));
811 LOG (GNUNET_ERROR_TYPE_DEBUG, 801 LOG (GNUNET_ERROR_TYPE_DEBUG,