Merge remote-tracking branch 'origin/master' into credentials
[oweals/gnunet.git] / src / gns / gns.h
index 10119800d532becf8d7faff14d68a5051791cc60..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
@@ -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
 
       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 gns/gns.h
  */
 /**
  * @file gns/gns.h
@@ -28,9 +28,9 @@
 #include "gnunet_gns_service.h"
 
 /**
 #include "gnunet_gns_service.h"
 
 /**
- * Name of the GADS TLD.
+ * Name of the GNS TLD.
  */
  */
-#define GNUNET_GNS_TLD "gads"
+#define GNUNET_GNS_TLD "gnu"
 
 /**
  * Name of the zone key TLD.
 
 /**
  * Name of the zone key TLD.
  */
 #define GNUNET_GNS_TLD_PLUS "+"
 
  */
 #define GNUNET_GNS_TLD_PLUS "+"
 
-/**
- * Maximum length of a label in DNS.
- */
-#define MAX_DNS_LABEL_LENGTH 63
-
-/**
- * Maximum length of a name in DNS.
- */
-#define MAX_DNS_NAME_LENGTH 253
-
 
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
  * Message from client to GNS service to lookup records.
  */
 
 GNUNET_NETWORK_STRUCT_BEGIN
 
 /**
  * Message from client to GNS service to lookup records.
  */
-struct GNUNET_GNS_ClientLookupMessage
+struct LookupMessage
 {
   /**
 {
   /**
-   * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_LOOKUP
+   * Header of type #GNUNET_MESSAGE_TYPE_GNS_LOOKUP
    */
   struct GNUNET_MessageHeader header;
 
    */
   struct GNUNET_MessageHeader header;
 
@@ -71,43 +61,37 @@ struct GNUNET_GNS_ClientLookupMessage
   uint32_t id GNUNET_PACKED;
 
   /**
   uint32_t id GNUNET_PACKED;
 
   /**
-   * If use_default_zone is empty this zone is used for lookup
+   * Zone that is to be used for lookup
    */
    */
-  struct GNUNET_CRYPTO_ShortHashCode zone;
+  struct GNUNET_CRYPTO_EcdsaPublicKey zone;
 
   /**
 
   /**
-   * Only check cached results
+   * Local options for where to look for results
+   * (an `enum GNUNET_GNS_LocalOptions` in NBO).
    */
    */
-  uint32_t only_cached GNUNET_PACKED;
+  int16_t options GNUNET_PACKED;
 
   /**
 
   /**
-   * Should we look up in the default zone?
+   * Always 0.
    */
    */
-  uint32_t use_default_zone GNUNET_PACKED;
-
-  /**
-   * Is a shorten key attached?
-   */
-  uint32_t have_key GNUNET_PACKED;
+  int16_t reserved GNUNET_PACKED;
 
   /**
    * the type of record to look up
    */
 
   /**
    * the type of record to look up
    */
-  /* enum GNUNET_GNS_RecordType */ uint32_t type;
-
-  /* Followed by the key for shorten (optional) see have_key */
+  int32_t type GNUNET_PACKED;
 
 
-  /* Followed by the name to look up */
+  /* Followed by the zero-terminated name to look up */
 };
 
 
 /**
  * Message from GNS service to client: new results.
  */
 };
 
 
 /**
  * Message from GNS service to client: new results.
  */
-struct GNUNET_GNS_ClientLookupResultMessage
+struct LookupResultMessage
 {
   /**
 {
   /**
-    * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_RESULT
+    * Header of type #GNUNET_MESSAGE_TYPE_GNS_LOOKUP_RESULT
    */
   struct GNUNET_MessageHeader header;
 
    */
   struct GNUNET_MessageHeader header;
 
@@ -118,111 +102,14 @@ struct GNUNET_GNS_ClientLookupResultMessage
 
   /**
    * The number of records contained in response
 
   /**
    * The number of records contained in response
-   */  
-  uint32_t rd_count;
-
-  /* followed by rd_count GNUNET_NAMESTORE_RecordData structs*/
-
-};
-
-
-/**
- * Message from client to GNS service to shorten names.
- */
-struct GNUNET_GNS_ClientShortenMessage
-{
-  /**
-   * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_SHORTEN
-   */
-  struct GNUNET_MessageHeader header;
-
-  /**
-   * Unique identifier for this request
-   */
-  uint32_t id GNUNET_PACKED;
-
-  /**
-   * If use_default_zone is empty this zone is used for lookup
-   */
-  struct GNUNET_CRYPTO_ShortHashCode zone;
-
-  /**
-   * Shorten zone
    */
    */
-  struct GNUNET_CRYPTO_ShortHashCode shorten_zone;
+  uint32_t rd_count GNUNET_PACKED;
 
 
-  /**
-   * Private zone
-   */
-  struct GNUNET_CRYPTO_ShortHashCode private_zone;
+  /* followed by rd_count GNUNET_GNSRECORD_Data structs*/
 
 
-  /**
-   * Should we look up in the default zone?
-   */
-  uint32_t use_default_zone GNUNET_PACKED;
-  
-  /* Followed by the name to shorten up */
 };
 
 
 };
 
 
-/**
- * Message from GNS service to client: shorten result.
- */
-struct GNUNET_GNS_ClientShortenResultMessage
-{
-  /**
-   * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_SHORTEN_RESULT
-   */
-  struct GNUNET_MessageHeader header;
-
-  /**
-   * Unique identifier for this request (for key collisions).
-   */
-  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
-   */
-  struct GNUNET_MessageHeader header;
-
-  /**
-   * Unique identifier for this request
-   */
-  uint32_t id GNUNET_PACKED;
-
-  /* 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