use NULL as flag for evaluation of query, ensure we pass non-NULL for reply_block...
[oweals/gnunet.git] / src / util / service_new.c
index 8433c42bff67600cfce72904451411d6f2e8e5aa..8d654c0cbda81591f9edcac1255636520f5df0d7 100644 (file)
@@ -390,6 +390,14 @@ service_main (void *cls)
     GNUNET_SCHEDULER_add_shutdown (&service_shutdown,
                                    sh);
   GNUNET_SERVICE_resume (sh);
+
+  if (-1 != sh->ready_confirm_fd)
+  {
+    GNUNET_break (1 == WRITE (sh->ready_confirm_fd, ".", 1));
+    GNUNET_break (0 == CLOSE (sh->ready_confirm_fd));
+    sh->ready_confirm_fd = -1;
+  }
+
   if (NULL != sh->service_init_cb)
     sh->service_init_cb (sh->cb_cls,
                         sh->cfg,
@@ -2195,9 +2203,10 @@ start_client (struct GNUNET_SERVICE_Handle *sh,
                                               client);
   client->mst = GNUNET_MST_create (&service_client_mst_cb,
                                   client);
-  client->user_context = sh->connect_cb (sh->cb_cls,
-                                         client,
-                                         client->mq);
+  if (NULL != sh->connect_cb)
+    client->user_context = sh->connect_cb (sh->cb_cls,
+                                           client,
+                                           client->mq);
   GNUNET_MQ_set_handlers_closure (client->mq,
                                   client->user_context);
   client->recv_task
@@ -2517,9 +2526,10 @@ GNUNET_SERVICE_client_drop (struct GNUNET_SERVICE_Client *c)
   GNUNET_CONTAINER_DLL_remove (sh->clients_head,
                                sh->clients_tail,
                                c);
-  sh->disconnect_cb (sh->cb_cls,
-                     c,
-                     c->user_context);
+  if (NULL != sh->disconnect_cb)
+    sh->disconnect_cb (sh->cb_cls,
+                       c,
+                       c->user_context);
   if (NULL != c->warn_task)
   {
     GNUNET_SCHEDULER_cancel (c->warn_task);