fix double-read task in communicator-unix
authorChristian Grothoff <christian@grothoff.org>
Thu, 15 Nov 2018 13:08:31 +0000 (14:08 +0100)
committerChristian Grothoff <christian@grothoff.org>
Thu, 15 Nov 2018 13:08:31 +0000 (14:08 +0100)
src/transport/Makefile.am
src/transport/gnunet-communicator-unix.c

index ad39abe6af15d8c8d2a7241487c5852e3425a0df..deeb39b4840b8eda73a6c8ad50fc56087ce89feb 100644 (file)
@@ -8,7 +8,8 @@ pkgcfgdir= $(pkgdatadir)/config.d/
 libexecdir= $(pkglibdir)/libexec/
 
 pkgcfg_DATA = \
-  transport.conf
+  transport.conf \
+  communicator-unix.conf 
 
 if HAVE_MHD
  GN_LIBMHD = -lmicrohttpd
index cd3ae5dcedb412485153e68e137112538500500c..b2eebbe209a33312ca12128430db134290efe8a9 100644 (file)
@@ -533,6 +533,7 @@ mq_send (struct GNUNET_MQ_Handle *mq,
   GNUNET_CONTAINER_DLL_insert (queue_head,
                               queue_tail,
                               queue);
+  GNUNET_assert (NULL != unix_sock);
   if (NULL == write_task)
     write_task =
       GNUNET_SCHEDULER_add_write_net (GNUNET_TIME_UNIT_FOREVER_REL,
@@ -708,6 +709,7 @@ receive_complete_cb (void *cls,
                              "# transport transmission failures",
                              1,
                              GNUNET_NO);
+  GNUNET_assert (NULL != unix_sock);
   if ( (NULL == read_task) &&
        (delivering_messages < max_queue_length) )
     read_task = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
@@ -735,6 +737,7 @@ select_read_cb (void *cls)
   ssize_t ret;
   uint16_t msize;
 
+  GNUNET_assert (NULL != unix_sock);
   read_task = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
                                             unix_sock,
                                             &select_read_cb,
@@ -1083,16 +1086,12 @@ run (void *cls,
                   "%s-%s",
                   COMMUNICATOR_ADDRESS_PREFIX,
                   unix_socket_path);
+  GNUNET_free (unix_socket_path);
   ai = GNUNET_TRANSPORT_communicator_address_add (ch,
                                                  my_addr,
                                                  GNUNET_ATS_NET_LOOPBACK,
                                                  GNUNET_TIME_UNIT_FOREVER_REL);
   GNUNET_free (my_addr);
-  GNUNET_free (unix_socket_path);
-  read_task = GNUNET_SCHEDULER_add_read_net (GNUNET_TIME_UNIT_FOREVER_REL,
-                                            unix_sock,
-                                            &select_read_cb,
-                                            NULL);
 }