service_new: ready_confirm_fd
[oweals/gnunet.git] / src / util / test_connection_timeout.c
index 2a1ce58f3a85ba7ee7d344ff377e27e42a05ec77..e78cec6695d5c8e494615edbc5e9857474887e57 100644 (file)
@@ -1,10 +1,10 @@
 /*
      This file is part of GNUnet.
 /*
      This file is part of GNUnet.
-     (C) 2009 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2009 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
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
-     by the Free Software Foundation; either version 2, or (at your
+     by the Free Software Foundation; either version 3, or (at your
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
 
      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.
 */
 /**
  * @file util/test_connection_timeout.c
  * @brief tests for connection.c
  */
 #include "platform.h"
 */
 /**
  * @file util/test_connection_timeout.c
  * @brief tests for connection.c
  */
 #include "platform.h"
-#include "gnunet_common.h"
-#include "gnunet_connection_lib.h"
-#include "gnunet_scheduler_lib.h"
-#include "gnunet_time_lib.h"
-
-#define VERBOSE GNUNET_NO
+#include "gnunet_util_lib.h"
 
 #define PORT 12435
 
 
 #define PORT 12435
 
@@ -37,6 +32,8 @@ static struct GNUNET_CONNECTION_Handle *lsock;
 
 static struct GNUNET_NETWORK_Handle *ls;
 
 
 static struct GNUNET_NETWORK_Handle *ls;
 
+static struct GNUNET_CONFIGURATION_Handle *cfg;
+
 
 /**
  * Create and initialize a listen socket for the server.
 
 /**
  * Create and initialize a listen socket for the server.
@@ -54,15 +51,16 @@ open_listen_socket ()
 #if HAVE_SOCKADDR_IN_SIN_LEN
   sa.sin_len = sizeof (sa);
 #endif
 #if HAVE_SOCKADDR_IN_SIN_LEN
   sa.sin_len = sizeof (sa);
 #endif
+  sa.sin_family = AF_INET;
   sa.sin_port = htons (PORT);
   sa.sin_port = htons (PORT);
-  desc = GNUNET_NETWORK_socket_socket (AF_INET, SOCK_STREAM, 0);
+  desc = GNUNET_NETWORK_socket_create (AF_INET, SOCK_STREAM, 0);
   GNUNET_assert (desc != NULL);
   GNUNET_assert (desc != NULL);
-  if (GNUNET_NETWORK_socket_setsockopt (desc, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) != GNUNET_OK)
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
-                "setsockopt");
-  GNUNET_assert (GNUNET_NETWORK_socket_bind (desc, 
-                                            (const struct sockaddr*) &sa, 
-                                            sizeof (sa)) == GNUNET_OK);
+  if (GNUNET_NETWORK_socket_setsockopt
+      (desc, SOL_SOCKET, SO_REUSEADDR, &on, sizeof (on)) != GNUNET_OK)
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK, "setsockopt");
+  GNUNET_assert (GNUNET_OK ==
+                GNUNET_NETWORK_socket_bind (desc, (const struct sockaddr *) &sa,
+                                            sizeof (sa)));
   GNUNET_NETWORK_socket_listen (desc, 5);
   return desc;
 }
   GNUNET_NETWORK_socket_listen (desc, 5);
   return desc;
 }
@@ -72,78 +70,60 @@ static size_t
 send_kilo (void *cls, size_t size, void *buf)
 {
   int *ok = cls;
 send_kilo (void *cls, size_t size, void *buf)
 {
   int *ok = cls;
+
   if (size == 0)
   if (size == 0)
-    {
-#if VERBOSE
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Got the desired timeout!\n");
-#endif
-      GNUNET_assert (buf == NULL);
-      *ok = 0;
-      GNUNET_CONNECTION_destroy (lsock);
-      GNUNET_CONNECTION_destroy (csock);
-      return 0;
-    }
-#if VERBOSE
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Got the desired timeout!\n");
+    GNUNET_assert (buf == NULL);
+    *ok = 0;
+    GNUNET_CONNECTION_destroy (lsock);
+    GNUNET_CONNECTION_destroy (csock);
+    return 0;
+  }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Sending kilo to fill buffer.\n");
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Sending kilo to fill buffer.\n");
-#endif
   GNUNET_assert (size >= 1024);
   memset (buf, 42, 1024);
 
   GNUNET_assert (NULL !=
   GNUNET_assert (size >= 1024);
   memset (buf, 42, 1024);
 
   GNUNET_assert (NULL !=
-                 GNUNET_CONNECTION_notify_transmit_ready (csock,
-                                                       1024,
-                                                       GNUNET_TIME_UNIT_SECONDS,
-                                                       &send_kilo, cls));
+                 GNUNET_CONNECTION_notify_transmit_ready (csock, 1024,
+                                                          GNUNET_TIME_UNIT_SECONDS,
+                                                          &send_kilo, cls));
   return 1024;
 }
 
 
 static void
   return 1024;
 }
 
 
 static void
-task_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+task_timeout (void *cls)
 {
 
   ls = open_listen_socket ();
 {
 
   ls = open_listen_socket ();
-  lsock = GNUNET_CONNECTION_create_from_existing (tc->sched, ls, 0);
+  lsock = GNUNET_CONNECTION_create_from_existing (ls);
   GNUNET_assert (lsock != NULL);
   GNUNET_assert (lsock != NULL);
-  csock = GNUNET_CONNECTION_create_from_connect (tc->sched,
-                                                     "localhost", PORT, 1024);
+  csock = GNUNET_CONNECTION_create_from_connect (cfg, "localhost", PORT);
   GNUNET_assert (csock != NULL);
   GNUNET_assert (NULL !=
   GNUNET_assert (csock != NULL);
   GNUNET_assert (NULL !=
-                 GNUNET_CONNECTION_notify_transmit_ready (csock,
-                                                       1024,
-                                                       GNUNET_TIME_UNIT_SECONDS,
-                                                       &send_kilo, cls));
+                 GNUNET_CONNECTION_notify_transmit_ready (csock, 1024,
+                                                          GNUNET_TIME_UNIT_SECONDS,
+                                                          &send_kilo, cls));
 }
 
 
 }
 
 
-
-/**
- * Main method, starts scheduler with task_timeout.
- */
-static int
-check_timeout ()
-{
-  int ok;
-
-  ok = 1;
-  GNUNET_SCHEDULER_run (&task_timeout, &ok);
-  return ok;
-}
-
 int
 main (int argc, char *argv[])
 {
 int
 main (int argc, char *argv[])
 {
-  int ret = 0;
+  int ok;
 
   GNUNET_log_setup ("test_connection_timeout",
 
   GNUNET_log_setup ("test_connection_timeout",
-#if VERBOSE
-                    "DEBUG",
-#else
                     "WARNING",
                     "WARNING",
-#endif
                     NULL);
                     NULL);
-  ret += check_timeout ();
-  return ret;
+
+  ok = 1;
+  cfg = GNUNET_CONFIGURATION_create ();
+  GNUNET_CONFIGURATION_set_value_string (cfg, "resolver", "HOSTNAME",
+                                         "localhost");
+  GNUNET_SCHEDULER_run (&task_timeout, &ok);
+  GNUNET_CONFIGURATION_destroy (cfg);
+  return ok;
 }
 
 /* end of test_connection_timeout.c */
 }
 
 /* end of test_connection_timeout.c */