WiP
[oweals/gnunet.git] / src / dht / gnunet-dht-put.c
index 4d25847fb86374155086d58cfe4bfb8e7bac4c33..6bd9f90452553e76aeb5cfd7323615f1ea6a857b 100644 (file)
@@ -4,7 +4,7 @@
 
      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
@@ -56,10 +56,6 @@ static int verbose;
  */
 static struct GNUNET_DHT_Handle *dht_handle;
 
-/**
- * Global handle of the scheduler
- */
-static struct GNUNET_SCHEDULER_Handle *sched;
 
 /**
  * Global handle of the configuration
@@ -79,11 +75,11 @@ static char *data;
 static void
 shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-
   if (dht_handle != NULL)
-    GNUNET_DHT_disconnect (dht_handle);
-
-  dht_handle = NULL;
+    {
+      GNUNET_DHT_disconnect (dht_handle);
+      dht_handle = NULL;
+    }
 }
 
 /**
@@ -95,62 +91,53 @@ shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 void
 message_sent_cont (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-  if (tc->reason == GNUNET_SCHEDULER_REASON_TIMEOUT)
-    {
-      if (verbose)
-        fprintf (stderr,
-                 "Failed to send put request to service, quitting.\n");
-      ret = 1;
-    }
-  else
-    {
-      if (verbose)
-        fprintf (stderr, "PUT request sent!\n");
-    }
-
-  GNUNET_SCHEDULER_add_now (sched, &shutdown_task, NULL);
+  if (verbose)
+    fprintf (stderr, 
+            _("PUT request sent!\n"));    
+  GNUNET_SCHEDULER_add_now (&shutdown_task, NULL);
 }
 
 /**
  * Main function that will be run by the scheduler.
  *
  * @param cls closure
- * @param s the scheduler to use
  * @param args remaining command-line arguments
  * @param cfgfile name of the configuration file used (for saving, can be NULL!)
  * @param c configuration
  */
 static void
 run (void *cls,
-     struct GNUNET_SCHEDULER_Handle *s,
      char *const *args,
      const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *c)
 {
   struct GNUNET_TIME_Relative timeout;
   struct GNUNET_TIME_Absolute expiration;
   GNUNET_HashCode key;
-  sched = s;
   cfg = c;
 
-  if ((query_key == NULL) || (data == NULL))
+  if ( (query_key == NULL) || (data == NULL) )
     {
-      if (verbose)
-        fprintf (stderr, "Must provide KEY and DATA for DHT put!\n");
+      fprintf (stderr,
+              _("Must provide KEY and DATA for DHT put!\n"));
       ret = 1;
       return;
     }
 
-  dht_handle = GNUNET_DHT_connect (sched, cfg, 1);
-
+  dht_handle = GNUNET_DHT_connect (cfg, 1);
   if (dht_handle == NULL)
     {
-      if (verbose)
-        fprintf (stderr, "Couldn't connect to DHT service!\n");
+      fprintf (stderr, 
+              _("Could not connect to %s service!\n"),
+              "DHT");
       ret = 1;
       return;
     }
   else if (verbose)
-    fprintf (stderr, "Connected to DHT service!\n");
+    fprintf (stderr,
+            _("Connected to %s service!\n"), "DHT");
+
+  if (query_type == GNUNET_BLOCK_TYPE_ANY) /* Type of data not set */
+    query_type = GNUNET_BLOCK_TYPE_TEST;
 
   GNUNET_CRYPTO_hash (query_key, strlen (query_key), &key);
 
@@ -162,11 +149,18 @@ run (void *cls,
                                        expiration_seconds));
 
   if (verbose)
-    fprintf (stderr, "Issuing put request for `%s' with data `%s'!\n",
+    fprintf (stderr,
+            _("Issuing put request for `%s' with data `%s'!\n"),
              query_key, data);
-
-  GNUNET_DHT_put (dht_handle, &key, query_type, strlen (data), data,
-                  expiration, timeout, &message_sent_cont, NULL);
+  GNUNET_DHT_put (dht_handle,
+                 &key, 
+                 DEFAULT_PUT_REPLICATION,
+                 GNUNET_DHT_RO_NONE,
+                 query_type, 
+                 strlen (data), data,
+                  expiration, 
+                 timeout,
+                 &message_sent_cont, NULL);
 
 }
 
@@ -183,13 +177,13 @@ static struct GNUNET_GETOPT_CommandLineOption options[] = {
    1, &GNUNET_GETOPT_set_string, &data},
   {'t', "type", "TYPE",
    gettext_noop ("the type to insert data as"),
-   0, &GNUNET_GETOPT_set_uint, &query_type},
+   1, &GNUNET_GETOPT_set_uint, &query_type},
   {'T', "timeout", "TIMEOUT",
    gettext_noop ("how long to execute this query before giving up?"),
-   0, &GNUNET_GETOPT_set_ulong, &timeout_request},
+   1, &GNUNET_GETOPT_set_ulong, &timeout_request},
   {'e', "expiration", "EXPIRATION",
    gettext_noop ("how long to store this entry in the dht (in seconds)"),
-   0, &GNUNET_GETOPT_set_ulong, &expiration_seconds},
+   1, &GNUNET_GETOPT_set_ulong, &expiration_seconds},
   {'V', "verbose", NULL,
    gettext_noop ("be verbose (print progress information)"),
    0, &GNUNET_GETOPT_set_one, &verbose},
@@ -215,3 +209,5 @@ main (int argc, char *const *argv)
                               ("Issue a PUT request to the GNUnet DHT insert DATA under KEY."),
                               options, &run, NULL)) ? ret : 1;
 }
+
+/* end of gnunet-dht-put.c */