gns.h | gns.h | |||
---|---|---|---|---|
skipping to change at line 21 | skipping to change at line 21 | |||
WITHOUT ANY WARRANTY; without even the implied warranty of | WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
General Public License for more details. | General Public License for more details. | |||
You should have received a copy of the GNU General Public License | You should have received a copy of the GNU General Public License | |||
along with GNUnet; see the file COPYING. If not, write to the | along with GNUnet; see the file COPYING. If not, write to the | |||
Free Software Foundation, Inc., 59 Temple Place - Suite 330, | Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |||
Boston, MA 02111-1307, USA. | Boston, MA 02111-1307, USA. | |||
*/ | */ | |||
#include "gnunet_gns_service.h" | ||||
/** | /** | |||
* @file gns/gns.h | * @file gns/gns.h | |||
* @brief IPC messages between GNS API and GNS service | * @brief IPC messages between GNS API and GNS service | |||
* @author Martin Schanzenbach | * @author Martin Schanzenbach | |||
*/ | */ | |||
#ifndef GNS_H | #ifndef GNS_H | |||
#define GNS_H | #define GNS_H | |||
#define GNUNET_GNS_TLD "gnunet" | ||||
#define GNUNET_GNS_TLD_ZKEY "zkey" | ||||
#define GNUNET_GNS_DHT_MAX_UPDATE_INTERVAL 3600 | ||||
#define MAX_DNS_LABEL_LENGTH 63 | ||||
#define MAX_DNS_NAME_LENGTH 253 | ||||
GNUNET_NETWORK_STRUCT_BEGIN | GNUNET_NETWORK_STRUCT_BEGIN | |||
/** | /** | |||
* Message from client to GNS service to lookup records. | * Message from client to GNS service to lookup records. | |||
*/ | */ | |||
struct GNUNET_GNS_ClientLookupMessage | struct GNUNET_GNS_ClientLookupMessage | |||
{ | { | |||
/** | /** | |||
* Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_LOOKUP | * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_LOOKUP | |||
*/ | */ | |||
struct GNUNET_MessageHeader header; | struct GNUNET_MessageHeader header; | |||
/** | /** | |||
* A key. TODO some uid | * Unique identifier for this request (for key collisions). | |||
*/ | */ | |||
GNUNET_HashCode key; | uint32_t id GNUNET_PACKED; | |||
/** | /** | |||
* Unique identifier for this request (for key collisions). | * Should we look up in the default zone? | |||
*/ | */ | |||
// FIXME: unaligned | uint32_t use_default_zone GNUNET_PACKED; | |||
uint64_t unique_id; | ||||
/** | ||||
* If use_default_zone is empty this zone is used for lookup | ||||
*/ | ||||
struct GNUNET_CRYPTO_ShortHashCode zone; | ||||
/** | /** | |||
* the type of record to look up | * the type of record to look up | |||
*/ | */ | |||
// FIXME: bad type - should be of GNUNET_GNS_RecordType | enum GNUNET_GNS_RecordType type; | |||
int type; | ||||
/* Followed by the name to look up */ | /* Followed by the name to look up */ | |||
}; | }; | |||
/** | /** | |||
* Message from GNS service to client: new results. | * Message from GNS service to client: new results. | |||
*/ | */ | |||
struct GNUNET_GNS_ClientResultMessage | struct GNUNET_GNS_ClientLookupResultMessage | |||
{ | { | |||
/** | /** | |||
* Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_RESULT | * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_RESULT | |||
*/ | */ | |||
struct GNUNET_MessageHeader header; | struct GNUNET_MessageHeader header; | |||
/** | /** | |||
* Unique identifier for this request (for key collisions). | * Unique identifier for this request (for key collisions). | |||
*/ | */ | |||
// FIXME: unaligned | uint32_t id GNUNET_PACKED; | |||
uint64_t unique_id; | ||||
/** | /** | |||
* A key. TODO some uid | * The number of records contained in response | |||
* // FIXME: why hash? | ||||
*/ | */ | |||
GNUNET_HashCode key; | uint32_t rd_count; | |||
// FIXME: what format has a GNS_Record? | ||||
/* followed by rd_count GNUNET_NAMESTORE_RecordData structs*/ | ||||
}; | ||||
/** | ||||
* Message from client to GNS service to shorten names. | ||||
*/ | ||||
struct GNUNET_GNS_ClientShortenMessage | ||||
{ | ||||
/** | /** | |||
* The number of records contained in response | * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_SHORTEN | |||
*/ | */ | |||
uint32_t num_records; | struct GNUNET_MessageHeader header; | |||
// FIXME: what format has a GNS_Record? | /** | |||
/* followed by num_records GNUNET_GNS_Records*/ | * Unique identifier for this request | |||
*/ | ||||
uint32_t id GNUNET_PACKED; | ||||
/** | ||||
* Should we look up in the default zone? | ||||
*/ | ||||
uint32_t use_default_zone GNUNET_PACKED; | ||||
/** | ||||
* If use_default_zone is empty this zone is used for lookup | ||||
*/ | ||||
struct GNUNET_CRYPTO_ShortHashCode zone; | ||||
/* 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 | GNUNET_NETWORK_STRUCT_END | |||
#endif | #endif | |||
End of changes. 16 change blocks. | ||||
17 lines changed or deleted | 105 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |