ack florian
[oweals/gnunet.git] / src / util / test_mq_client.c
index 88e072c2b622a62f7d7e9e763204af228d691ec9..f436d1a4c74caaa2962925e7d910c405698066e6 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2012 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2012 GNUnet e.V.
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
@@ -23,7 +23,6 @@
  * @brief tests for mq with connection client
  */
 #include "platform.h"
-#include "gnunet_common.h"
 #include "gnunet_util_lib.h"
 
 #define PORT 23336
@@ -33,8 +32,6 @@
 
 static struct GNUNET_SERVER_Handle *server;
 
-static struct GNUNET_CLIENT_Connection *client;
-
 static struct GNUNET_CONFIGURATION_Handle *cfg;
 
 static int ok;
@@ -45,18 +42,15 @@ static int received = 0;
 
 
 static void
-recv_cb (void *cls, struct GNUNET_SERVER_Client *argclient,
+recv_cb (void *cls,
+         struct GNUNET_SERVER_Client *argclient,
          const struct GNUNET_MessageHeader *message)
 {
   received++;
-
-  printf ("received\n");
-
-
-  if ((received == 2) && (GNUNET_YES == notify))
+  if (received == 2)
   {
-    printf ("done\n");
-    GNUNET_SERVER_receive_done (argclient, GNUNET_NO);
+    GNUNET_SERVER_receive_done (argclient,
+                                GNUNET_NO);
     return;
   }
 
@@ -68,7 +62,7 @@ recv_cb (void *cls, struct GNUNET_SERVER_Client *argclient,
 
 
 static void
-clean_up (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+clean_up (void *cls)
 {
   GNUNET_SERVER_destroy (server);
   server = NULL;
@@ -85,7 +79,8 @@ clean_up (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
  * @param client identification of the client
  */
 static void
-notify_disconnect (void *cls, struct GNUNET_SERVER_Client *client)
+notify_disconnect (void *cls,
+                   struct GNUNET_SERVER_Client *client)
 {
   if (client == NULL)
     return;
@@ -99,35 +94,49 @@ static struct GNUNET_SERVER_MessageHandler handlers[] = {
   {NULL, NULL, 0, 0}
 };
 
-void send_cb (void *cls)
+
+static void
+send_cb (void *cls)
 {
   /* the notify should only be called once */
   GNUNET_assert (GNUNET_NO == notify);
-  printf ("notify sent\n");
   notify = GNUNET_YES;
 }
 
-void test_mq (struct GNUNET_CLIENT_Connection *client)
+static void
+send_trap_cb (void *cls)
+{
+  GNUNET_assert (0);
+}
+
+
+static void
+test_mq ()
 {
   struct GNUNET_MQ_Handle *mq;
   struct GNUNET_MQ_Envelope *mqm;
 
   /* FIXME: test handling responses */
-  mq = GNUNET_MQ_queue_for_connection_client (client, NULL, NULL, NULL);
+  mq = GNUNET_CLIENT_connecT (cfg,
+                              "test",
+                              NULL, NULL, NULL);
 
   mqm = GNUNET_MQ_msg_header (MY_TYPE);
   GNUNET_MQ_send (mq, mqm);
 
   mqm = GNUNET_MQ_msg_header (MY_TYPE);
-  GNUNET_MQ_notify_sent (mqm, send_cb, NULL);
+  GNUNET_MQ_notify_sent (mqm, &send_trap_cb, NULL);
   GNUNET_MQ_send (mq, mqm);
+  GNUNET_MQ_send_cancel (mqm);
 
-  /* FIXME: add a message that will be canceled */
+  mqm = GNUNET_MQ_msg_header (MY_TYPE);
+  GNUNET_MQ_notify_sent (mqm, &send_cb, NULL);
+  GNUNET_MQ_send (mq, mqm);
 }
 
 
 static void
-task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task (void *cls)
 {
   struct sockaddr_in sa;
   struct sockaddr *sap[2];
@@ -156,10 +165,7 @@ task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   GNUNET_CONFIGURATION_set_value_string (cfg, "test", "HOSTNAME", "localhost");
   GNUNET_CONFIGURATION_set_value_string (cfg, "resolver", "HOSTNAME",
                                          "localhost");
-  client = GNUNET_CLIENT_connect ("test", cfg);
-  GNUNET_assert (client != NULL);
-
-  test_mq (client);
+  test_mq ();
 }
 
 
@@ -171,6 +177,6 @@ main (int argc, char *argv[])
                     NULL);
   ok = 1;
   GNUNET_SCHEDULER_run (&task, NULL);
+  GNUNET_assert (GNUNET_YES == notify);
   return ok;
 }
-