Merge remote-tracking branch 'origin/master' into credentials
[oweals/gnunet.git] / src / gns / gns.h
index 0f9d77537267fe4709cac2579883643bb4bd5b10..d77bf53c6aed09e31e73034859826f4145e5d96c 100644 (file)
@@ -1,10 +1,10 @@
 /*
       This file is part of GNUnet
 /*
       This file is part of GNUnet
-      (C) 2012 Christian Grothoff (and other contributing authors)
+      Copyright (C) 2012-2013 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.
  */
  */
-
-#include "gnunet_gns_service.h"
-
 /**
  * @file gns/gns.h
  * @brief IPC messages between GNS API and GNS service
 /**
  * @file gns/gns.h
  * @brief IPC messages between GNS API and GNS service
 #ifndef GNS_H
 #define GNS_H
 
 #ifndef GNS_H
 #define GNS_H
 
-#define GNUNET_GNS_TLD "gnunet"
-#define GNUNET_GNS_TLD_ZKEY "zkey"
-#define GNUNET_GNS_DHT_MAX_UPDATE_INTERVAL 3600
-
-GNUNET_NETWORK_STRUCT_BEGIN
+#include "gnunet_gns_service.h"
 
 /**
 
 /**
- * Message from client to GNS service to lookup records.
+ * Name of the GNS TLD.
  */
  */
-struct GNUNET_GNS_ClientLookupMessage
-{
-  /**
-    * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_LOOKUP
-   */
-  struct GNUNET_MessageHeader header;
+#define GNUNET_GNS_TLD "gnu"
 
 
-  /**
  * Unique identifier for this request (for key collisions).
  */
-  uint32_t id GNUNET_PACKED;
+/**
* Name of the zone key TLD.
+ */
+#define GNUNET_GNS_TLD_ZKEY "zkey"
 
 
-  /**
-   * the type of record to look up
-   */
-  // FIXME: bad type - should be of GNUNET_GNS_RecordType
-  enum GNUNET_GNS_RecordType type;
+/**
+ * TLD name used to indicate relative names.
+ */
+#define GNUNET_GNS_TLD_PLUS "+"
 
 
-  /* Followed by the name to look up */
-};
 
 
+GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
 
 /**
- * Message from GNS service to client: new results.
+ * Message from client to GNS service to lookup records.
  */
  */
-struct GNUNET_GNS_ClientLookupResultMessage
+struct LookupMessage
 {
   /**
 {
   /**
-    * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_RESULT
+   * Header of type #GNUNET_MESSAGE_TYPE_GNS_LOOKUP
    */
   struct GNUNET_MessageHeader header;
 
    */
   struct GNUNET_MessageHeader header;
 
@@ -75,41 +61,37 @@ struct GNUNET_GNS_ClientLookupResultMessage
   uint32_t id GNUNET_PACKED;
 
   /**
   uint32_t id GNUNET_PACKED;
 
   /**
-   * The number of records contained in response
-   */  
-  uint32_t rd_count;
-
-  // FIXME: what format has a GNS_Record?
-  /* followed by rd_count GNUNET_NAMESTORE_RecordData structs*/
+   * Zone that is to be used for lookup
+   */
+  struct GNUNET_CRYPTO_EcdsaPublicKey zone;
 
 
-};
+  /**
+   * Local options for where to look for results
+   * (an `enum GNUNET_GNS_LocalOptions` in NBO).
+   */
+  int16_t options GNUNET_PACKED;
 
 
-/**
- * Message from client to GNS service to shorten names.
- */
-struct GNUNET_GNS_ClientShortenMessage
-{
   /**
   /**
-    * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_SHORTEN
+   * Always 0.
    */
    */
-  struct GNUNET_MessageHeader header;
+  int16_t reserved GNUNET_PACKED;
 
   /**
 
   /**
-   * Unique identifier for this request
+   * the type of record to look up
    */
    */
-  uint32_t id GNUNET_PACKED;
+  int32_t type GNUNET_PACKED;
 
 
-  /* Followed by the name to shorten up */
+  /* Followed by the zero-terminated name to look up */
 };
 
 
 /**
 };
 
 
 /**
- * Message from GNS service to client: shorten result.
+ * Message from GNS service to client: new results.
  */
  */
-struct GNUNET_GNS_ClientShortenResultMessage
+struct LookupResultMessage
 {
   /**
 {
   /**
-    * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_SHORTEN_RESULT
+    * Header of type #GNUNET_MESSAGE_TYPE_GNS_LOOKUP_RESULT
    */
   struct GNUNET_MessageHeader header;
 
    */
   struct GNUNET_MessageHeader header;
 
@@ -118,47 +100,16 @@ struct GNUNET_GNS_ClientShortenResultMessage
    */
   uint32_t id GNUNET_PACKED;
 
    */
   uint32_t id GNUNET_PACKED;
 
-  /* followed by the shortened name or '\0' for no result*/
-
-};
-
-/**
- * Message from client to GNS service to lookup an authority of a name.
- */
-struct GNUNET_GNS_ClientGetAuthMessage
-{
   /**
   /**
-    * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_GET_AUTH
+   * The number of records contained in response
    */
    */
-  struct GNUNET_MessageHeader header;
+  uint32_t rd_count GNUNET_PACKED;
 
 
-  /**
-   * Unique identifier for this request
-   */
-  uint32_t id GNUNET_PACKED;
+  /* followed by rd_count GNUNET_GNSRECORD_Data structs*/
 
 
-  /* Followed by the name to get authority for */
 };
 
 
 };
 
 
-/**
- * Message from GNS service to client: authority result.
- */
-struct GNUNET_GNS_ClientGetAuthResultMessage
-{
-  /**
-    * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_GET_AUTH_RESULT
-   */
-  struct GNUNET_MessageHeader header;
-
-  /**
-   * Unique identifier for this request (for key collisions).
-   */
-  uint32_t id GNUNET_PACKED;
-
-  /* followed by the authority part of the name or '\0' for no result*/
-
-};
 GNUNET_NETWORK_STRUCT_END
 
 #endif
 GNUNET_NETWORK_STRUCT_END
 
 #endif